白糖 发表于 2018-3-27 11:53:30

关于c语言数组指针

新人小白,今天刚看了C的指针,概念基本都懂了,但是关于‘*’这个符号的意义还是有点迷糊,求助各位前辈解答:

如图中,printf打印时,*(*(p+1)-6),里层的*(p+1)的意义是什么,它是地址还是值?

BngThea 发表于 2018-3-27 11:57:13

因为p被定义为指向数组名的指针,
所以p+1指向了数组头部平移了数组长度的位置,
*(p+1)就是解引用后指向该一个具体int的位置
最后-6为向左平移6个int单位的地址

白糖 发表于 2018-3-27 12:28:57

BngThea 发表于 2018-3-27 11:57
因为p被定义为指向数组名的指针,
所以p+1指向了数组头部平移了数组长度的位置,
*(p+1)就是解引用后指向 ...

所以*(p+1)这里仍然是看作一个指针么?

BngThea 发表于 2018-3-27 12:33:53

白糖 发表于 2018-3-27 12:28
所以*(p+1)这里仍然是看作一个指针么?

页: [1]
查看完整版本: 关于c语言数组指针