c语言中的在前"和在后"的区别是什么

2020-11-29 19:21:31 字数 5115 阅读 5571

1楼:運命に抗

++在前是先加1在运算, 在后面是先运算在加1例子如下。

int i=0;

printf("%d",++i);i加了1才给传递参数,所以输出是1i=0;

printf("%d",i++)前传递参数,所以还是输出原来的值是0printf("%d,i) 因为上面那句加了1所以 输出是1

在c语言中,++放在前面和后面有什么区别?详细解释please

2楼:董俊锟

分两种情况

【1】 作为单独的语句 i++; ++i; 没区别【2】 在赋值输出等语句中,++放在前面, 先自加,然后在做其他的操作语句

++放在后面则是 先执行其他的操作,后自加

3楼:匿名用户

i++是先赋值再计算

++i是先计算再赋值

可以简单理解成前++优先级高,后++优先级最低于是有:

如:i=1 (i++)+(++i)+i

运算顺序从左到右

先算第一个括号里的i++。先赋值则1=(i++),原式变为 1+(++i)+i。再计算后++ ,i=2。

算第二个括号里的++i。先计算 ,i=3。再赋值则3=(++i),原式变为 1+3+i。

最后就得到原式变为1+3+3=7,i=3

4楼:醉梦清枫

单独使用无区别

在式子中使用的话

sum+=++i;这个是先对i进行自增1,再加到sum上,等同于:i+=1;sum+=i;

sum+=i++;这个是先把i加到sum上,再把i进行自增1,等同于:sum+=i;i+=1;

5楼:匿名用户

如果p = 0;if(++p)时,p先加1,再进行if判断,结果为真;如果是if(p++),则先使用p进行判断,再对p加1,即,结果为假,但是运行完成后,p都为1

6楼:匿名用户

b = ++a;

在前面的,先执行自增,也就是a = a+1;执行完再运算本行其他操作,即b = a;

b = a++;

则先运算本行其他操作,b = a;再运行自增 a = a + 1;

ps:一般不推荐一个表达式内有多个++a或者a++,一般只有一个,或者没有。多个自增在一起,有时候存在歧义,在不同编译器可能会出现不同结果

7楼:妙趣衡生

++i,先执行自加

++i,后执行自加

比如:j=i++,就是j=i之后,i=i+1j=++i,就是i=i+1之后,j=i

8楼:匿名用户

符号放在前面需要先+1再赋值,放在后面则刚刚相反即先赋值再+1

9楼:小不点

放在前面相当于先给本身赋值了再运算

后面是先运算了再加

10楼:

放在前面:运算前加,后面:运算后加

11楼:勿恋勿忘

++在前为前增 右边的变量先自增再将变化后的变量值赋值给左边的变量,后增先讲右边的变量的值赋给左边,然后右边的变量再自增

12楼:匿名用户

i++简单的说就是先用i的值再加一,++i是i的值先加一再用

在c语言中,++放在前面和后面有什么区别?

13楼:gta小鸡

++在变量前:表达式的结果为变量的当前值+1++在变量后:表达式的结果为变量的当前值

例如有int a = 2,则表达式++a的值为3,表达式a++的值为2。

这两个表达式求值完毕后,a的值均会变为3。

14楼:匿名用户

i++是先赋值再计算

++i是先计算再赋值

可以简单理解成前++优先级高,后++优先级最低于是有:

如:i=1 (i++)+(++i)+i

运算顺序从左到右

先算第一个括号里的i++。先赋值则1=(i++),原式变为 1+(++i)+i。再计算后++ ,i=2。

算第二个括号里的++i。先计算 ,i=3。再赋值则3=(++i),原式变为 1+3+i。

最后就得到原式变为1+3+3=7,i=3

15楼:運命に抗

++在前是先加1在运算, 在后面是先运算在加1例子如下。

int i=0;

printf("%d",++i);i加了1才给传递参数,所以输出是1i=0;

printf("%d",i++)前传递参数,所以还是输出原来的值是0printf("%d,i) 因为上面那句加了1所以 输出是1

16楼:匿名用户

举个例子吧,

int x,y;

x=1;

y=x++;

执行y=x++后,y的值是1,x的值为2;若改成y=++x,执行后y的值为2,x的值为2.

总结说来就是++在前的话用的是加一后的值,++在后的话先用原值再加一。

17楼:董俊锟

分两种情况

【1】 作为单独的语句 i++; ++i; 没区别【2】 在赋值输出等语句中,++放在前面, 先自加,然后在做其他的操作语句

++放在后面则是 先执行其他的操作,后自加

在c语言里++在前与在后的区别?

18楼:憵溃曙汨

关于你上面那道题答案的解释: 首先:我敢确认你的答案八成是抄错了,因为p的值应为6。

第二点:++不管在前在后都只能让i自增1。 那么下面我们来将你那个例子改一下:

int p,i=2; p=i+(++i+(i++))+i;//上式p=++i+(i++) p=6 printf("i=%d",&i); printf("p=%d",&p); 你说现在的p和i分别是多少呢?答案:i=4;p=12; 首先i=4,说明i之前只增加了2次,即++i和i++ 第二点:

p=12而你上面p=++i+(i++)(p=6),只不过多加了二个i而p值就增加了一倍。我这时想会不会和加的i顺序有关结果我将i放了好几个不同的位置,可结果都一样。 最后一次我将它这样放置:

p=++i+(i++)+i+i=12与p=++i+(i++)=6 比较得出这时的i为3,最后的输出i为4.这样规律就出来了 结论:首先++、--的执行单位是以一个;结尾的语句,当算表达式时首先算里面带有的(i)++(i)、(i)--(i)的运算式,得出当前的i值(如果运算符在前就先将i的值改变,如果i在后就先不改变i的值,等到以一个;结尾的本条语句执行完后再将i的改变),将最后得出i值全部赋给运算式中的i,最后再按运算符的结合性做运算。

如: int p,i=2; int p=i+(++i)+i++; //首先算i值,在这一句:++i---->i=3,i++---->i=3(i不改变) //再将i值用i=3替换掉:

即p=3+3+3; //再做运算将p算出:p=9; //这句执行完后再将i+1--->i=4

在c语言中, ++,--放前面和放后面的区别是什么?

19楼:gta小鸡

++在变量前:表达式的结果为变量的当前值+1++在变量后:表达式的结果为变量的当前值

例如有int a = 2,则表达式++a的值为3,表达式a++的值为2。

这两个表达式求值完毕后,a的值均会变为3。

20楼:匿名用户

++(或--)在前面就是先自增(或自减)1然后在运算。放在后面就是先完成后面运算再自增(或自减)1。

c语言++放在前面和后面的区别分析

21楼:匿名用户

++在前是先加1在运算, 在后面是先运算在加1 例子如下。 int i=0; printf("%d",++i);i加了1才给传递参数,所以输出是1 i=0; printf("%d",i++)前传递参数,所以还是输出原来的值是0 printf("%d,i) 因为上面那句加了1所以 输出是1

22楼:

int main()

单独一句,无区别;作为参数就有区别。

23楼:大大的辅导辅导

u表示该常数用无符号整型方式存储,相当于unsigned int;l表示该常数用长整型方式存储,相当于longf表示该常数用浮点方式存储,相当于float

在c语言中 前++后++是怎么实现的?系统是怎么判断前++和后++的? 5

24楼:

前++后++, 计算机 用 增1 实现。

在表达式中出现时,前++ 是 先更新 再使用,后++是 先不更新 就使用, 出表达式时数值才更新。

25楼:

前++就是++i ,意思就是在使用变量i 之前加一,后++就是i++,同理在使用变量i后将i加一。

c语言里自加++和自减——放变量前和变量后有什么不同作用啊,分别怎么计算的?

26楼:匿名用户

运算符在前,表示运算在前取值在后;运算符在后,表示运算在后取值在前c语言是过程式编程语言。不同于“纯”函数式编程语言,c语言的表达式可以改变变量的值或外部状态,这被称为表达式的“***”(side effect)。++i 就是含有***的表达式,在对 ++i / --i 这样的前缀运算符(prefix increment and decrement operators)求值的过程中,按定义发生了以下两步

改变变量 i 的值

确定运算结果是变量 i 改变后的值

而在对 i++ / i-- 这样的后缀运算符(postfix increment and decrement operators)求值的过程中,则是以下两步

确定运算结果是变量 i 的值(此时 i 的值还没有改变)改变变量 i 的值

27楼:匿名用户

跟优先级有关系例如 int a = 1;int b = a++,b就是等于1如果int b = ++a,b就是等于2因为=号的优先级要高于++,--

28楼:匿名用户

++(--)放在变量前是先自增(减)再引用反之就是先引用再自增(减)

C语言中与的区别,c语言中“&”与“*”有什么区别?

1楼 匿名用户 是取地址 叫解引用,意思是取地址的内容 举例 int a 3 int b a 这里 表示取a的地址 b就是去b的地址的内容就是3 2楼 诡其辞 s形式表示取变量s的地址 a b形式表示a与b之间进行位与运算。 s形式表示指针变量指向的位置 a b形式 呵呵!不消说了。 3楼 匿名用户...

c语言中与有何区别,c语言中%c与%s的有什么区别?

1楼 匿名用户 在定义变量时 是定义指针 是引用 注 好象c没有引用 例如 int pvar null 定义一个int类型指针int var 0 int pvar var 定义一个引用 并且定义时要指定所引用的对象 在使用时 是解指针 即取其指向的变量的值 是取地址int var 10 int pv...

C语言中的栈和堆是什么,C语言中的栈、堆是什么?

1楼 仙女小迷仔 1 计算机中的内存分为两部分 一部分是栈 stack,也称堆栈 ,另一部分是堆 heap 。 2 栈,可以看作是一摞卡片,最上面的卡片表示程序的当前作用域,这往往就是当前正在执行的函数。 3 堆,一段完全独立于当前函数或者栈帧的内存区。如果一个函数中声明了一些变量,而且希望当这个函...