#include <stdio.h>
void main()
{
int a[5]={1,3,5,7,9},p=a;
(++p)=2;
(*p)++;
}
printf("%d,%d", a[0]+a[1],*p);
你以后发代码的时候,用平台的插入代码模块,要不然你发的代码的号会被忽略,容易造成我们理解不清。我给你解释一下这个吧,p表示将数组a的初始地址赋给p,则p就表示a【0【,然后自加运算后,表示a【1】被修改为2,然后*p)++表示a【1】的值加一,也就是3,然后输出的时候,就是4,3。你应该是指针的相关运算和定义没理解清楚。如果有不清楚的可以私聊我哦。😁
*p=a
此时p指向a[0]
*(++p)=2;
修改a[1]=2
(*p)++;
修改a[1]=3
a[0]+a[1]也就是1+3 = 4
*p
p指向a[1],也就是3
望采纳,谢谢
你这程序确定能运行吗?
#include <stdio.h>
int main() {
int a[5] = { 1,3,5,7,9 }, * p = a;//*p=a即p=&a[0]
*(++p) = 2;//++p(p=&a[1]) *p=2 a[1]=2;
(*p)++;//*p即a[1] a[1]++ a[1]=3;
printf("%d,%d", a[0] + a[1], *p);
return 0;
}