‘壹’ c语言中后加加和前加加什么意思
前加加,代表着先运算,后加一,后加加,代表先加一,再进行运算
‘贰’ 请问 c语言中++a和a++的区别是什么, 不用告诉我是先加后用和先用后加 我知道这个 请举个例子
/*
这个例子主要是考虑到a++和++a的存储问题;
我们知道,对于a++是先将a给表达式再++;
那么这就是需要一个tmp空间来保存++之前
的a!!!但是对于++a是不需要的,因为先
执行++,那么就是直接改a空间内容就好了!
那么我们下面的问题就是这样!
*/
#include <stdio.h>
int main()
{
int a = 4;
/*
解释:下面的答案在Linux和VC下测试是9;
如果这样的形式不好看,那么写成这样就
可以了:a = a + ( a++ );
那么由于a++是先把数放到tmp空间再++;
所以,执行顺序:把后面a放进tmp空间,然后
a的存储空间数++,那么现在a中是5,tmp中是4
最后a = a + tmp;所以最终结果==9
*/
a += ( a++ );
printf("a = %d\n\n", a);
/*
解释:这里和上面的区别就是++先后执行的
问题,执行顺序:先a++,那么此时的a中就是
5了,然后将这个结果也放进一个tmp空间,
最后在相加,那么结果就是:5 + 5 == 10
*/
a = 4;
a += ( ++a );
printf("a = %d\n\n", a);
/*
注意:下面的代码编译是通过不了的哦!为什么?
其实自最开始已经解释了!就是有没有tmp的问题!
注意a++是先把a给表达式,再++,那么对于左边
来说,其实给的存储空间是tmp而并不是a本身,对于
tmp来说是不可以被赋值的,只能是作为输入操作!!
所以。。。
*/
/*
a = 4;
(a++) += a;
printf("a = %d\n\n", a);
*/
/*
这个本质其实也是差不多的;
就是先有了++a放到a中了,那么相当于是a的初
始值是5,然后在执行:a += ( a++ );那么结果
就是11呗,呵呵~
*/
a = 4;
( ++a ) += ( a++ );
printf("a = %d\n\n", a);
return 0;
}
‘叁’ C语言中,递增运算符的“前加”与“后加”的疑问
++或者--在前或者在后是不同的,比如说a=b++的执行过程是先执行a=b,再执行b=b+1,而a=++b是先执行b=b+1,再执行a=b(这时候的b的值已经加了1)。 *to++ = *from++;是执行*to=*from,再执行*to=*to+1和*from=*from+1 *++to = *++from;是执行*to=*to+1和*from=*from+1,再执行*to=*from 之所以执行结果一样,是因为先做了string1,这样两个数组都有值了,你将两个函数的位置换一下,就会发现结果不同!!
‘肆’ 有关C语言前加加后后加加的问题
a=10;
b=a++;
c=++a;
=======
上述表达式等价于:
a=10;
b=a;
a=a+1;
a=a+1;
c=a;
=============
结果是
a=12
b=10
c=12
‘伍’ C语言 i++问题 i++是先用后加这个用具体是什么意思呢 y=0 y++,++y 此时
i++;这句执行之后,i=i+1;
++i;这句执行之前,i=i+1
x=8 printf("%d %d %d %d",++x,--x,x++,x--);
不知道你懂不懂栈,输出时,事先将变量存放在栈中,然后才输出,这就是为什么是从右往左看。
而且我这里执行输出是8 7 7 8哦,我用的是GCC编译器,不知道你用的是什么
从右往左,首先x=8;
X--;这一句执行之后X=x-1,因此这一句的时候x=8,输出8,输出之后X=7
X++;这一句执行之后X=X+1,因此输出7,之后X=8
--x;这一句执行前x=x-1;因此输出7,之后X也是=7;
++X;同理输出8
因此,从后往前看,输出顺序就是8 7 7 8
‘陆’ c语言前++后++,用在一起的话要怎么理解。请高手帮个忙,解释一下,谢谢
根据这张表描述的内容:
++*p++;
和
++(*p++);
是等价的。都是先将指针后移1位(对指针做运算),然后再获取指针所指向的新地址的第1个字符;
++(*p)++;
//
这条语句先取出当前指定指向的第1个字符,然后再对此字符进行运算。这是错误的,因为"hello
world"存储在“常量存储区”,它的值是不能被改变的;
‘柒’ 请问c语言自增自减的结合性是从右到左,怎么理解如果是从右到左,为什么a++是先用后加呢
因为语言就是这么规定的
这样是为了减少代码的编写量
a++ 就是先返回原始值然后自加1的
++a 先自加1再返回
这两个语句 可以在很多地方使用
‘捌’ c语言中怎样理解i++和++i,请举例具体说明
就如楼上极为说的,i++是先用后加,如:int x,y=5;
x=y++;
在这里x=y++=5,而y自身经过一次自增之后变成了6
而如果是++i的话,x=++y=6,y也=6,因为是先加后用,
反正就是i++ ++i不管哪个,i都会加1,只是i++是原来的i的值,而++i是加1之后的i的值
但是如果碰到有很多个的自增自减的时候就要看编译器了,那个的看搞编译器的那个人是怎么设置的,所以如果遇到那种情况,还是尽量别用自增自减了,免得换了一个编译器就不能用了。。。
‘玖’ 2 在计算机二级c语言中 a++ 的先用后加在程序中是怎么操作的
是自增操作 无论++号在a的前面还是在后面 都是自增1, 若a++ 那说明 先把a用完后再加1 , 若++a 则说明 先执行自增操作再用。
比如:
for(a=0;a<10;a++)
a先使用,用完最后在a++
for(a=0;a<10;++a)
a先自增,然后再用
理解把!