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

fjmyhfvclm2025-02-07  23

董俊锟的回答:


分两种情况

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

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

热心网友的回答:


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

醉梦清枫的回答:


单独使用无区别

在式子中使用的话

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

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

热心网友的回答:


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

热心网友的回答:


b = ++a;

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

b = a++;

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

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

妙趣衡生的回答:


++i,先执行自加

++i,后执行自加

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

热心网友的回答:


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

小不点的回答:


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

后面是先运算了再加

的回答:


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

勿恋勿忘的回答:


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

热心网友的回答:


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

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

gta小鸡的回答:


++在变数前:表示式的结果为变数的当前值+1++在变数后:表示式的结果为变数的当前值

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

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

热心网友的回答:


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

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

运命に抗的回答:


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

int i=0;

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

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

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

热心网友的回答:


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

的回答:


int main()

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

大大的辅导辅导的回答:


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

️在c语言的档案中,像r,w,a,r+,w+,a+分别是什么意思,前面三者与后面三者有什么区别吗?

云盘云存的回答:


r 开启只读档案,该档案必须存在。

r+ 开启可读写复的档案,该档案必须存在。

w 开启只写档案,若档案存在则档案长度清为0,即制该档案内容会消失。若档案不存在则建立该档案。

w+ 开启可读写档案,若档案存在则档案长度清为零,即该档案内容会消失。若档案不存在则建立百该档案。

a 以附加的方式开启只写档案。若档案不存在,则会建立该档案,如果档案存在,写入的资料会被加到档案尾,即档案原先的内容会被保留。

a+ 以附加方式开启可读写的文度件。若档案不存在,则会建立该档案,如果档案存在,写入的资料会被加到档案尾后,即档案原先的内容会被保留。

热心网友的回答:


r是只读,档案已存在,指标在档案头;r+是读写方式,读写指标都在档案头。w是只写方式,w+是读写方式建立新档案,读指标在档案头。a是追加方式开启档案,指标指向档案尾;a+是读写方式开启档案,读从档案开始,写从档案尾开始。

️在c语言中,++是什么含义?

热词课代表的回答:


最近」盘「字很流行,盘是什么意思?为什么能成为网路热词?

热心网友的回答:


单独的++n和n++跟n=n+1没有区别,就是对整型变数n加1放在具体表示式中会有区别

n=1;

a=n++*2 //先计算出表示式的值,再对n自增。结果a=2;n=2

a=++n*2 //先对n自增,再计算出表示式的值。结果a=4;n=2

不知道你看懂了没。

热心网友的回答:


在c语言中,++的含义是:单目运算子,』++『是原始值累加1。

c语言是一门通用计算机程式语言,应用广泛。c语言的设计目标是提供一种能以简易的方式编译、处理低阶储存器、产生少量的机器码以及不需要任何执行环境支援便能执行的程式语言。

儘管c语言提供了许多低阶处理的功能,但仍然保持着良好跨平台的特性,以一个标準规格写出的c语言程式可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(微控制器或称mcu)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的c语言语法产生差异,由美国国家标準局为c语言制定了一套完整的国际标準语法,称为ansi c,作为c语言最初的标準。

热心网友的回答:


++n即n=n+1,呼叫前++

--n即n=n-1,呼叫前--

n--即n=n-1,呼叫后--

n++即n=n+1,呼叫后--

可以用main()

{int n=2

printf("%d",n++);

printf("%d",n);

n=2printf("%d",++n);

printf("%d",n);

)看出n++和++n的区别

热心网友的回答:


++n、--n是n最后的值为加1后的值 。 后面的相反

️c语言中*p++和(*p)++有什么区别?

慕容冰绡的回答:


我看书中解释:*p++:是先取出*p的值,再使p加1//p是个指标,给p加1,相当于让p指向了x所在地址的下一个位置,而对于x则是没有任何影响

(*p)++:是使*p的值加1.

//*p则是p指向的位置对应的值,题目中是*q,所以此时的*q就是x的值,为3,当输出*q之后,再给*q即x自加1,所以x就变为4

魔鬼小波的丶的回答:


这些人回答的,一群小屁孩蹭经验的吧?这个题就应该是3,3,4.①printf("%d\n",*p++);p指标地址加一,所以x还是3。

②printf("%d\n",(*q)++);指标内容加一,但是注意是后加加,此时指标输出的内容还是之前状态x=3的。③最后printf("%d\n",x);,此时经过②指标内容已被加1,因为这个类似引用,故可指标可改变原来内容,原x也是4;如果你想出现3,4,4的答案第二个应该是++(*q)

吴帅帅的回答:


*p++是指下一个地址。

(*p)++是指将*p所指的资料的值加一。

c编译器认为*和++是同优先顺序操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先顺序比*和++都高,所以++作用在()内的表示式*p上。比如有:

int x,y,a=,*p=a,*q=a;

x=*p++;//执行这一句后x=a[0]=1,p=a+1y=(*q)++;//执行这一句后,y=a[0]+1=2,q仍然=a

春志学陈卓的回答:


区别大了。

*p只是一个指标,

**p是一个指向指标的指标

例如int

*p;那么p就是指向int型别变数的一个指标。(即阵列)如果int**p;

那么p就是指向int*型别指标的一个指标。(即指向一维阵列的指标,即二维阵列)

的回答:


c编译器认为*和++是同优先顺序操作符,且都是从右至左结合的,所以*p++中的++只作用在p上,和*(p++)意思一样;在(*p)++中,由于()的优先顺序比*和++都高,所以++作用在()内的表示式*p上。比如有:

int x,y,a=,*p=a,*q=a;

x=*p++;//执行这一句后x=a[0]=1,p=a+1y=(*q)++;//执行这一句后,y=a[0]+1=2,q仍然=a

热心网友的回答:


由于后置++在执行完后返回运算前的值,所以(*p)++返回的值是3.

但是此时x已经被修改为了4,所以后边的输出就是4了。

尹岑稽菀的回答:


while(p)

等价于while(p

!=0)

检查的是p值是不是0,或者是不是空指标,如果是,则跳出迴圈,不再继续迴圈体

而while(*p)

相当于while(

*p!=

0)检查的是p所指向的地址中的资料是否为0,但前提是p不能为null

缪立军的回答:


后自增操作符总是先把原值赋值给表示式,然后完成自增操作的所以printf("%d\n",*p++);相当于printf("%d\n",*p);p++;

而printf("%d\n",(*q)++);相当于printf("%d\n",*q);(*q)++

所以答案应该是3,3,4

殇心的回答:


*p++等价于*p (返回其值),p++;

*++p等价于++p,*p(返回其值);

(*p)++等价于*p,然后*p的值加1;

真的不知道某些人发很多别人看的很烦的东西是炫耀自己有很多学问吗?

官俊晖宣华的回答:


*p表示p代表相应资料型别在储存单元中储存的首地址,而这个储存单元储存的是相应型别资料的数值,

**p表示p也表示地址,简单的说,这个地址对应的储存单元储存的数也是一个地址,而不是数值,而这个被储存的地址对应的储存单元储存的资料才是真正的相应型别的数值!

大伞夏的回答:


printf("%d\n",(*q)++); 先取出 (*q) = 3; 所以输出3 等取完值后 *p再加1 才是你说的 4

热心网友的回答:


(*p)++:是使*p的值加1. 先取得的是*p的值.

在前是先加1在运算,在后面是先运算在加1 例子如下。int i 0 printf d i i加了1才给传递引数,所以输出是1 i 0 printf d i 前传递引数,所以还是输出原来的值是0 printf d,i 因为上面那句加了1所以 输出是1 int main 单独一句,无区别 作为引数就有区...

陈述句中,一般主语在动词的前面。比如i am writing a book。am 是动词,i 是主语 英语中什么时候副词放在动词前什么时候放在动词后 比如说well written和 muni 5 构成合成形容词时,副词放在核心动词形式 多是非谓语动词 之前。一般修饰谓语动词,要用副词,放在被修饰词...

主函式入口点之后.也就是紧跟入口点.希望採纳 c语言中的清屏函式clrscr 应该怎么用?void clrscr void 程式例 include int main 扩充套件资料c语言特点 1 c语言设计目版标是提供一种能以权简易的方式编译 处理低阶储存器 产生少量的机器 以及不需要任何执行环境支援...

转载请注明原文地址:https://www.aspcms.cn/baike/1621164.html
00

热门资讯