求助一个关于C语言指针的问题int main(){\x09int a[]={1,2,3,4,5};\x09int *p=a;\x09printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p);\x09return 0;}这段程序运行结果是2,2,0,0,0,0,1我不明白的是printf里面的参

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 11:12:00
求助一个关于C语言指针的问题int main(){\x09int a[]={1,2,3,4,5};\x09int *p=a;\x09printf(

求助一个关于C语言指针的问题int main(){\x09int a[]={1,2,3,4,5};\x09int *p=a;\x09printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p);\x09return 0;}这段程序运行结果是2,2,0,0,0,0,1我不明白的是printf里面的参
求助一个关于C语言指针的问题
int main()
{
\x09int a[]={1,2,3,4,5};
\x09int *p=a;
\x09printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p);
\x09return 0;
}
这段程序运行结果是2,2,0,0,0,0,1
我不明白的是printf里面的参数结合是从右向左的,那么在结合到*p--后,p不是已经越界了吗?后面的结果是怎么得到的?

求助一个关于C语言指针的问题int main(){\x09int a[]={1,2,3,4,5};\x09int *p=a;\x09printf("%d,%d,%d,%d,%d,%d,%d\n",*p,*(++p),(*p)++,*p,*p--,--(*p),*p);\x09return 0;}这段程序运行结果是2,2,0,0,0,0,1我不明白的是printf里面的参
其实C标准对于函数参数的求值顺序是没有规定的.像在我的机子上win7 vc6出来的结果都是0,自己在编程过程中应该避免这个问题,对于同一个变量相关表达式不要重复求值.如果是考试的话,这个,你看看答案怎么说吧.