数组指针和指针数组

来源:互联网 发布:ip域名是什么意思 编辑:程序博客网 时间:2024/06/07 14:17

这个问题应该是C语言里的常见基础问题了,今天又理解了一遍,写个笔记复习。

1.数组指针

原来我理解的数组指针就是指向数据的指针嘛,就是这样的

</pre><pre name="code" class="cpp">int a[] = {1,2,3};int *p;p = a;
原来应该是这样的
int a[2][3] = {{1,2,3},{4,5,6}};int (*p)[3];p = a;

2.指针数组
这个好理解一些,重点还是数组,数组的元素都是指针。
int a[] = {1,2,3};int *p[3];p[0] = &a[0];

写了一段代码测试了一下各种情况
//下面代码主要是学习 数组指针和指针数组 int main(){int a[2][3]={{1,2,3},{11,22,33}};int b[3] = {111,222,333};int *p1;int (*p2)[3];//数组指针int (*p22)[4];//数组指针int *p3[2];//指针数组char *s[]={"hello","the","world hi"};char **chp;char *c =  (char *)malloc(10);//p1 = a ;//不能将 int(*)[3]类型的值 赋值给 int* 类型的实体 p1 = b;p2 = a;//p22 = a ;//不能将 int(*)[4]类型的值 赋值给 int(*)[3] 类型的实体 //p3 = a;//类型不匹配 p2 = &a[1]; //可以,多维数组的每行的首地址 都是一个数组指针p2 = &a[0];//与 p2 = a 等价 return 0;}






0 0
原创粉丝点击