指针地址问题,请达人解释?

chenli_neo chenli_neo 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
void main(void)
{
int nVar1=100,nVar2=200,nVar3=300;

int *Array[3];

Array[0]=&nVar1;
Array[1]=&nVar2;
Array[2]=&nVar3;

printf("%d\n",Array); 1
printf("%d\n",Array[0]); 2
printf("%d\n",*Array); 3
//printf("%d\n",*(++Array[1])); 4
//printf("%d\n",*(--Array[1])); 5


}


代码如上,其中打印出来的1 的内容是地址(整个数组的地址向下移动一个单元),而2的内容和3的内容一样(都是数组的初始地址,即第一个元素的起始地址),为什么3的内容不是100??;

另外,跟大家分享一下,栈的内存分配是自高位向地位分配的,所以4的内容是100,5的内容是300;
堆的分配是低地址向高地址分配;
...全文
评论 6
收藏 已收藏
分享
返回顶部
chenli_neo
C语言 70,039 成员 243,237 内容