早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求助一个关于C语言指针的问题int main(){x09int a[]={1,2,3,4,5};x09int *p=a;x09printf("%d,%d,%d,%d,%d,%d,%d ",*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标准对于函数参数的求值顺序是没有规定的.像在我的机子上win7 vc6出来的结果都是0,自己在编程过程中应该避免这个问题,对于同一个变量相关表达式不要重复求值.如果是考试的话,这个,你看看答案怎么说吧.
看了 求助一个关于C语言指针的问题...的网友还看了以下:

以知一个直角三角形的斜边尺寸是100,三个角的角度分别是90、65、25,求另两天边的尺寸角度的排  2020-05-14 …

(40)下面关于客户机程序和服务器程序的说法,错误的是( )。A)服务器程序是一种有专门用途的、享有  2020-05-23 …

下面关于客户机程序和服务器程序的说法,错误的是()。A.服务器程序是一种有专门用途的、享有特权的  2020-05-24 …

下面关于客户机程序和服务器程序的说法,错误的是( )。A.服务器程序是一种有专门用途的、享有特权  2020-05-24 …

关于工序的描述,不正确的是( )。 A.工序在组织上可分割 B.工序是工艺方面最简单的施工过  2020-06-07 …

常见的金属活动性顺序由强到弱的顺序是,在该顺序中:(1)金属的位置越靠前,它的活动性越.(2)位于  2020-07-17 …

逆序为什么只换前面比它大的数?定义对于n个不同的元素,先规定个元素之间有一个“标准次序”(例如n个不  2020-12-05 …

下列属于对万民法的表述的是()①注重形式,程序繁琐,缺乏灵活与变通②内容上侧重于国家事务和法律程序等  2020-12-05 …

阅读下面的文字,完成1~3题。序是置于书籍或文章、图表前后的说明文字,主于“序作者之意”“序典籍之所  2020-12-18 …

阅读下面的文字,完成1-3题。序是置于书籍或文章、图表前后的说明文字。序可以用于介绍作者其人其事,阐  2020-12-18 …