课程
/后端开发
/C
/Linux C语言指针与内存
p[4]=101;与p[4];*p=101;不一样吧,p+=3跟p[3]不是一样吧
2016-03-09
源自:Linux C语言指针与内存 5-2
正在回答
p[3]代表的是array[0],是具体的变量,p+=3,这时的P指向array[0]。所以作者在用p[4],*p = 101,后结果变成了101,1,2,1,10,100。这里P[4]只是array[1],并没有把地址指向array[1],所以p[3]并不等于p+=3.可以看看视频代码里面最后一行printf语句,printf("P[%d]=%d",i,p[i])。这里的P[i]和p[3]是一个意思就是具体的某个变量
p[4]=101代表从初始位置(a的地址就始)以四个字节为一步,向前走4步,到达某个位置,然后对这个位置进行初始化赋值,即把101赋给这个地址所代表的内存空间。p[4],*p=101,p[4]代表从初始位置(a的地址就始)以四个字节为一步,向前走4步,到达某个位置。*p=101,代表此时指针指向的地址(即走了四步后所在位置)并对这个地址所在的内存空间进行初始化,赋值101。p+=3于p=p+3等同,加的是步数,原理跟p[3]一样
p[4]=101 与p[4]一样
p[4]=101 与p4[]一样
*p=101,表示p所指向的地址里的内容是101
p+=3 跟p[3]都一样
举报
指针-C语言的核心,代领大家对c语言有更加深刻的理解
1 回答*p=3 *p=1 *p=2顺序为什么是这样的
2 回答如果int a = 3; 那么int *p=&a;之后 是不是*p=3,p=&a 呢?
2 回答为什么*p=&a后又p=&a?这个p到底扮演的什么角色?
1 回答p[4];*p=101,p=&a
4 回答p pa,p *pa,和p &pa 这三个有什么区别