指针类型与动态变量
来源:互联网 发布:网络通信工程师培训 编辑:程序博客网 时间:2024/05/17 23:30
一:概念 指针类型:指示内存地址的数据类型; 指针变量:存放内存地址的变量(简称"指针");二:指针变量的定义 1.格式: 指针的类型 *变量名/*"*"是指针说明符*/; 如: int *p;int *a[100];char *s;2.结构体指针: 如: struct node{ int data; node *next;}*p;三:指针运算符(2个) 1.取地址(&):&后是普通变量(非双指针); 2.取内容(*):*表示指针所指向的变量.如*后是指针;程序中: 指针:p指针所取变量:*p结构指针的成员两种写法: (1): (*p).m; (2): p->m;四:指针的使用 1.指针赋值:给指针一个地址 如: p=&a;p=arr;p=p1;p=NULL;2.指针的运算(加或减一个整数)/*是地址内存字节数的+,-*/:如: p++;p--;p+=i;p-=i;r=p+i;r=p-i;3.两指针相减/*求出距离*/;4.两指针比较;5.*p和普通变量一样用: 如: *p=10000;*p+=*p1;*p=n/z; 五:动态变量 当指针指向一块无名的内存空间,就形成了一个动态变量; 形如:*p生成一个指定类型的动态变量: 格式:变量名=new 数据类型;功能:生成一个指定类型的动态变量;如:p=new int[10]; p=new node;如给一个动态数组存入n个元素:int n,*p;scanf("%d",&n);p=new int[n];for(int i=0;i<n;i++){ *p=rand()%90+10; printf("%d ",*p++);}注意区别: 动态数组是一个指针;指针数组是一组指针;六:指针与字符串 一个串的两种访问形式: 1.字符数组,如:char s[]="China"; 2.串指针,如:char *s="China";例一:较出串的10个字符后的所有字符 入:this is a book出:book 例二:把串a复制给串b,不用strcpy char *a,*b;gets(a);b=a;/*b指向a*/puts(b); 注意: 字符数组,指针进行串处理的区别:1.串指针是一个变量,存放的是串的首地址。 字符数组是多个字符变量组成的,存放整个串,数组名是串首地址。 2.对串指针:char*s; s="china";√ 对字符数组:char s[1000]; s="china";×七:指针数组例:输入n个国名,按词典顺序输出。 char *g[100];int n,i;void px(char *g[]){ char *p; for(int i=0;i<n-1;i++) for(int j=i+1;j<n=j++) if(strcmp(g[i],g[j])>0){ p=g[i]; g[i]=g[j]; g[j]=p;} } int main(){ scanf("%d\n",&n);for(i=0;i<n;i++){ g[i]=new char; gets(g[i]);} px(g);for(i=0;i<n;i++) printf("%d ",g[i]);return 0;}
1 0
- 指针类型与动态变量
- 指针与变量类型
- 指针变量与变量
- 指针与指针变量
- 指针与指针变量
- 指针与指针类型
- 动态内存分配与指向它的指针变量
- 指针和指针类型,变量类型和变量名
- c & c++中的“指针、指针变量、指针变量的类型”
- 解析C++普通局部变量与指针类型的对象变量的应用区别
- 解析C++普通局部变量与指针类型的对象变量的应用区别
- [转]解析C++普通局部变量与指针类型的对象变量的应用区别
- 指针变量、指针强制类型转换
- 指针变量与变量地址
- 指针变量的++与--
- 指针变量与++ --结合
- 6.2、变量与指针
- 指针与变量
- 挑战深度学习 《深度森林:探索深度神经网络以外的方法》
- 关于vector的容量增长问题
- Maven常用命令 2
- 关于NSIS脚本打包程序
- 0422
- 指针类型与动态变量
- Linux下安装Git
- hello world
- JAVA对象在JVM中内存分配
- 复习JQ (6)
- POJ-3694-Network(Tarjan+LCA+并查集)
- git_note
- Python 菲波那切数列
- maven3常用命令 4 java项目搭建、web项目搭建详细图解