C语言自增自减运算符用法

看了一下教材,看不太懂,不知道大家有不有讲解此方面的文章,谢谢,或者举例!什么前缀单目,后缀单目的啊,真的看不懂,看了几个书上的例子,我不知道是书错了,还是我理解有问题,... 看了一下教材,看不太懂,不知道大家有不有讲解此方面的文章,谢谢,或者举例!
什么前缀单目,后缀单目的啊,真的看不懂,看了几个书上的例子,我不知道是书错了,还是我理解有问题,真的不明白?
例如,前目单缀是先运算再使用对象,后缀单目是先使用对象再运算,如何理解?
假若有:int a=3,b=4
++a+b 的值是不是8啊,变量后a的值是4,运算:是不是(++a)+b啊
a+++4 的值是不是也是8啊,变量后a的值是多少啊,运算是不是:++(a+4)啊,真的有点不明白,希望懂的人告知,谢谢!

a+++4等价于(a++)+4 从左到右尽可能多的取运算符
先理解自增自减的含义,他的作用就是使变量加一,这个是不会受到是前缀或是后缀的影响的
(a++)+4=7 a=4
这如何理解啊,我怎么觉得这个的值应该是8怎么会是7呢?
展开
 我来答
mafangsan
推荐于2017-09-28 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2484万
展开全部
C语言的前置++和后置++,称为自增运算符
前置--和后置--称为自减运算符,下面以自增运算符的区别来加以介绍,自减类似

如果单独写 自增运算符为一个语句,二者没有区别
++i; 和 i++; 都是让i+1赋值给i
但是如果把自增运算符写入到另外表达式中二者就有很大区别了

例如
i=5;
j=i++;
执行后i为6,j为5
i=5;
j=++i;
执行后i为6,j为6
百度网友8f366bb5f
2008-11-18 · TA获得超过188个赞
知道小有建树答主
回答量:267
采纳率:100%
帮助的人:246万
展开全部
++a是先自加后操作,a++是先操作后自加,--也类同。

a+++4这种题是很容易混淆的,而且对于一些运算规则,不同的编译系统有不同的规定,不建议楼主使用。

如果是作业题的话,直接用程序运行看看结果是多少就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
neslovecafe
2008-11-18 · TA获得超过204个赞
知道答主
回答量:114
采纳率:0%
帮助的人:0
展开全部
a+++4等价于(a++)+4 从左到右尽可能多的取运算符
先理解自增自减的含义,他的作用就是使变量加一,这个是不会受到是前缀或是后缀的影响的
(a++)+4=7 a=4
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daofuuq
2008-11-18 · TA获得超过483个赞
知道小有建树答主
回答量:2560
采纳率:0%
帮助的人:911万
展开全部
a+++4难道是++4优先????
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_fmlyht
推荐于2017-10-06 · TA获得超过2359个赞
知道大有可为答主
回答量:2398
采纳率:0%
帮助的人:1814万
展开全部
int a[3];
for(i=0;i<3;) scanf("%d",a[i++]);
正确
int a[3];
for(i=0;i<3;) scanf("%d",a[++i]);
下标越界
for(i=0;i<3;) scanf("%d",a[i++]);
相当
for(i=0;i<3;){scanf("%d",a[i]);i++;}

for(i=0;i<3;i++) scanf("%d",a[i]);

for(i=0;i<3;) scanf("%d",a[++i]);
相当
for(i=0;i<3;){i++;scanf("%d",a[i]);}
所以下标越界
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式