c语言中指针指向数组,C语言中指针能否指向指针数组的元素

1,C语言中指针能否指向指针数组的元素int*p[4] ;//指针数组p里面有四个数组元素,且每个元素都是指针如果想用指针指向数组p中的元素,可以如下定义:int**q; //q必须是二级指针q=&p[0];//指针q指向数组p中的第一个元素....q=&p[3];//指针q指向数组p中的最后一个元素p是指向有3个int*型元素的指针,也可以说p代表一维数组 , p=a就是把a指针放到p数组的第一个位置,因此p[1]是指a,那么c选项就是访问a的第一个元素
2,关于C中指针和数组的指向关系1、p的内容是地址,p指向的变量的内容(也就是*p)是数值2、涉及行指针问题3、涉及行指针问题,三维以上的很少用了关于C语言的http://auction1.paipai.com/7040DD0C00000000007038B60531DA1F欢迎来1)p是指向地址的,*p代表的就是数值2)*(a+1)+2是地址,a[2][3]输出的是数3)可以那么说吧1指向地址对2指向地址
3,C语言中关于指向数组的指针char str[100];char *pi=str;//相当于char *pi ;pi=str;char **ppi=*pi;//这个地方抄错了 。应为char **ppi=π定义加*表明这是指针类型的变量用的时候,就是用的指针,加*干什么 。只有取指针所指变量的值 , 或给指针所指的变量赋值的等涉及指针所指的变量的时候 , 才会又加*号,表示获取或改变,指针所指变量的值 。char x=10;*pi =x;//给指针所指的变量赋值 , 改变指针所指变量的值(改变*pi)。x=*pi;//取指针所指的值,取指针pi所指的变量的值(表示为*pi)赋值给x 。pippi是指针带*是取值的意思*pi=str意思是把str这个数组的首地址 放在pi所指的空间里 换句话说就是pi指向了str数组 。用pi+1之类的就可以指向数组里面的东西*(pi+1)等同于str[1]因为不管是str还是pi, ppi都指的是地址,函数调用时只需要知道参数的地址就行,然后再去取里边的值,而不用加上星号来传递里边的值 。首先要明白,指针数组中存储的是指针,也就是说两个元素都是指针,而且存放的也的确是“a”和“a”的地址,但要知道字符串和字符是两个不同的数据类型,也就是说虽然存放的地址是一样的,但指针的类型不能理解为是指向字符“a”和“a”的指针,应该是指向字符串“abcd”和“abcd”的,明白的么?因为数组的名字,本身就是指向数组头的指针 。另外char **ppi=*pi;是不对的吧 。这意思是给一个指针赋值一个常数,这样的赋值只允许右值为0的【c语言中指针指向数组,C语言中指针能否指向指针数组的元素】

    推荐阅读