黑马程序员技术交流社区
标题:
关于指针的内容整理-->精辟
[打印本页]
作者:
zhuanshu1458
时间:
2015-11-9 21:15
标题:
关于指针的内容整理-->精辟
指针
一维指针*p
二维指针**p
指针数组:存放指针的数组,是一个数组
使用方法 int*p1[3]={&a,&b,&c};
指针数组名代表首元素地址: p1=&pa[0]=&&a;
数组的指针
int (*p)[4]=arr //arr是一个地址
用指针来访问一维数组
int arr[5]={32,234,54,6,642};
int *p2=arr=&arr[0];
用指针来访问二维数组
int arr3
[j]
arr[0],arr[0]+1,arr[0]2… 为列指针
arr[0],arr[1],arr[2]… 为行指针
a+i的地址等同于a
,*(a+i)=&a
[0];
arr3为数组的首元素的首地址
arr3==&arr[0]==&arr[0][0]==&arr3==arr[0]==arr[0][0]
二维数组指针变量说明的一般形式:把二位数组变成用指针来访问
int arr4
[j];
int(*p4)[j]=arr4 //定义一个数组指针,指向含j个元素的一维数组
arr4=&arr4[0]=&arr4[0][0]=arr[0]
(*(p4+i)+j)
获取二位数组的每个元素
字符串指针
char *str = “hallo world”; //str是一个指针
sizeof(str)==8;
strlen(str)==“字符长度”==11;
第i个字符的值为*(str+i);
字符串指针的知识点
char *str; //野指针
char *str=NULL; //这个指针不可用
str=malloc(100) //给指针分配100个字节
char ch3[100]; char *str=ch3; //也可以用
字符数组
char[10]=“hahaha”;默认最后一个/0
char arr5[4][6]={“halo”,”editor”,”make”};
最后一个默认/0
指针函数:参数为指针的函数
int *p6=max(&a,&b); //搞不懂
函数指针
int(*p)(int a,int b); //初始化 //返回值是一个指针
p=sum; ⬅️int sum(x,y); //p为指向函数的首地址
int max=p(a,5); //a可以是一个地址
int getMax(int *p,int len){}; //p传递一个数组名
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2