永发信息网

c语言前后缀自增自减问题

答案:3  悬赏:0  手机版
解决时间 2021-03-18 03:17
学C语言的时间不短了,但后来回顾前面竟然被些小题目难倒了,呵呵
希望围观的帮我解答一下嘛
i=8;j=10;
printf("%d,%d,%d,%d\n",++i,++i,j--,j--); // T1
printf("i=%d,j=%d,%d\n",i,j); // T2

T1:++i,++i的时候答案为 10,9,可i++的时候为8,8。大概跟自运算先后还有参数域先后有关?
T2:不经意写多了一个参数域%d,显示一个七位数,好奇问一下
T3:(另外写的)i=3; ++i*++i与i++*i++ 怎么得出来结果就25与9

希望解答一下...
最佳答案
LZ,对于这种++ --在一行的问题应该先声明编译器。
看LZ的程序可能是VC跑的. 在VC下,结果完全合理。
-------------------
首先,函数的参数都是从后到前的入栈的,printf收到模式字串时,会把每个%从栈取一个数。
++i,++i入栈时自然就是10,9了。
另外一个因为栈里已经空了,相当于取了一个内存随机数。
T3式子有问题,肯定是通不过编译的。希望LZ给全。
全部回答
c中++ --运算符优先级很高,优于大部分的运算符 vc中++i是先执行i+1,再参与其他运算;i++是先执行其他运算再进行i+1;所以第一个就没有什么疑问了。 至于第二个,我就纳闷了,格式化输入输出的前后是不用符号的,%d,%d在我看来是会导致异常的,不知道你的T1的正确结果是怎么运行过来的。 第三个也不说了,和第一个相同!
第一个b=a++就是把a的值赋给b以后自己再加1,c=a--就是把a的值赋给c以后自己再减1,依次类推,就明白了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
陆丰有什么好风景
我是一名小学生,即将毕业,想上钱江采荷实验中
“我们在田野散步:我,我的母亲,我的妻子和
2015年四川广汉飞行学校秋季开学时间
中国移动襄州双沟何明艳指定专营店地址在什么
请问,地埋线断路怎样查到断路点
求DNF今年夏日NPC补丁
我把驾照分卖了,现在好后悔
丽水市莲都区文化广电新闻出版局地址在什么地
硝基木器漆好还是聚胺脂漆好
吊顶天花可以做储物柜吗?
如果感觉和女朋友的距离越来越远该怎么办
我今天在银行换了预存的电话号码,现在我绑定
be in与join in的区别
兴北小区我想知道这个在什么地方
推荐资讯
摄影该从哪里开始学
新余市姚圩派出所这个地址在什么地方,我要处
新帕萨特和全新速派哪个耗油少
‘’五一‘期间’,为了满足广大人民的消费需
福州 榕城通 公交IC卡使用问题
请问一下中央财经大学的数理经济与数理金融和
紫光怎么才能自定义设置短语?
男同胞们,吵架后是彼此冷静下好还是马上和好
四方农家饭这个地址在什么地方,我要处理点事
大门对窗户风水化解 厨房门对窗户怎么化解
ppt2013以前的模板保存
什么手机炒股软件可以看五日分时线?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?