什么是C语言中关于自加自减?

刚学C有点搞不懂,哪个帮我解释一下,它的运算。... 刚学C有点搞不懂,哪个帮我解释一下,它的运算。 展开
 我来答
匿名用户
2014-02-22
展开全部
自增分前缀自增和后缀自增。无论是什么,执行自增都有1个副作用,就是原来变量的值会增加1。例如int a=1;a++;或int a=1;++a;执行后,a==2。

而他们的区别就在于整个自增表达式的值不同。如(a++)的值是变量a自增以前的值,如上面例子,(a++)==1。而(++a)的值则是变量a自增以后的值,即(++a)==1+1==2。

结合性分为左结合和右结合,只有优先级相同时才看结合性,例如表达式a+b*c+d-e*f,因为乘法优先级别高于加减,所以a+(b*c)+d-(e*f),又因+-运算是左结合,所以只a+(b*c)再(a+(b*c))+d再(a+(b*c)+d)-(e*f),假如是右结合,就先d-(e*f),也就反过来了。这里其实看不出有什么区别,怎么样结果都一样。
但看到*p++运算就不同了,因为*与++运算同一优先级,左结合结果就是(*p)++,右结合就是*(p++),这是区别很大的,书上还很多例子,你可以自己去看的。

强制转换问题就是在可以转换的情况下按要求转换。如float x=9.9;
则(int)x==9。将实型转为整型是采用截掉小数部分的做法。

例如还可以整型转字符常量等等,例如,int a=97;则(char)a=='a',因为字符a的ASCLL码为97。

()里面即是你要转换的类型。
匿名用户
2014-02-22
展开全部
通俗点吧,自增就是加1,分前缀自增和后缀自增,前缀自增就是先让自己加1然后再使用,后缀自增就是先使用,然后这个原来的值加1,后缀自减也是如此
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-22
展开全部
a++等价于a=a+1;先赋值后做加1操作;
a--等价于a=a-1;先赋值后做减1操作;
++a等价于a=a+1;先做加1操作后赋值;
--a等价于a=a-1;先做减1操作后赋值;;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-02-22
展开全部
a++,a--
++a,--a
a+=,a-=
都算作自加自减,在具体使用下和普通的+-法没有很大的区别,但是运行速度更快
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式