为什么分别输出的是a [ 0 ] .a [ 1 ] 的值?*(p++)是怎么运行的
追答*(p++) 的意思是先取出*p,之后再让p自加1,所以*(p++)的返回值是a[0]。
运行到后一个printf语句时,由于p已经自加过1,此时p是指向a[1]的,**k就是*p,所以返回的是a[1]的值。
大神,*(p++)和*p++有什么区别吗?
是因为p也是指针,所以k指向p的时候要写成**k么?*k有什么意义么?
追答> *(p++)和*p++有什么区别吗?
两者的动作是一样的。
> 是因为p也是指针,所以k指向p的时候要写成**k么?*k有什么意义么?
是因为p也是指针,所以想要指向p,就必须定义成int **k; 第一个*是代表p的类型,
第二个*才是代表k的类型,阅读的时候也就是理解为k是一个指针,k指向的类型并不是int型,而是int *型。所以*k也等同于p,即*k是一个int *类型,而不像*p那样是int类型。
修改*k就相当于对p的值进行修改,例如,如果还有一个数组b[],
我们执行 *k=b;
那么之后p就会指向b数组,而不再指向a数组。
十分感谢,谢谢啦
本回答被提问者采纳