Ⅰ c语言中++n和n++的区别
运算符优先级问题。
后自增运算符(++,结合方向左至右)的优先级高于取指示对象运算符(*,结合方向右至左)。
所以*n++指对n(指针)本身的自增。
而(*n)++指对n所指目标的自增。
Ⅱ C语言:n++和++n的区别,求大神讲解。
一般在
for
循环里
i++
和
++i
是没有什么运行效果上的区别的。只要了解一下
for
循环的运行顺序就知道了。
1for (①; ②; ④) {③}
一般
for
循环是按照这个顺序执行的,①
中的语句只在初始时执行一次,然后紧接着进行
②
中的判断,判断为真时则开始执行循环体本身
③,执行完
③
后最后执行
④
中的语句,然后重复进行
②,③,④
顺序的运行,当
②
中的条件为假时,结束循环。
现在看你的这个
12345for (; d <= n; ++d) { b = b + a; c = c + b; a = a * 10;}
因为你没有第一部分初始条件,所以运行顺序是,先判断
d
和
n
的值,当
d
≤
n
时,执行循环中的语句,执行完后再执行
++d。根据你前面的赋值,d
的初始值是
1,判断
1
不大于
n,于是过一遍循环内容,然后执行
++d
,d
的值变为
2,继续判断
2
和
n
的大小,如果
2
比
n
小的话,再过一遍循环内容,然后执行
++d,d
的值变为
3...
以此类推。
如果你改成
d++,
12345for (; d <= n; d++) { b = b + a; c = c + b; a = a * 10;}
其实是没有任何区别的。运行顺序是,首先
d
的初始值是
1,判断
1
不大于
n,于是过一遍循环内容,然后执行
d++
,d
的值变为
2,继续判断
2
和
n
的大小,如果
2
比
n
小的话,再过一遍循环内容,然后执行
d++,d
的值变为
3...
以此类推。
由于
for
条件句的执行顺序,判断
d
和
n
关系的语句总在
d++
或
++d
已经完成之后进行,而不是同时进行。也就是说
d
被加了一这一过程已经完成,然后才开始做的判断。所以无论是先加一还是后加一都不影响
d
的值,因为当程序需要使用
d
来进行判断时,它已经被加一了。
一般说的
++d
和
d++
有不同情况是由于在
++
语句执行的同时使用
d
的值而导致的,比如
12int d = 1;printf("%d", d++);
和
12int d = 1;printf("%d", ++d);
一个输出
1
一个输出
2,这是因为同时使用
++
和
printf
时,就会出现一个顺序问题。
d++
使
printf
先输出
d
的值,然后再把
d
加一,而
++d
则先把
d
加一,再使用
printf
输出
d
的值。但是无论怎样,在这两条语句执行完后,d
的值都是
2。
为了更便于理解,我再给出一种受影响的情况,
12345for (; d++ <= n; d++) { b = b + a; c = c + b; a = a * 10;}
和
12345for (; ++d <= n; d++) { b = b + a; c = c + b; a = a * 10;}
这就是两种不同的情况了。因为
++
语句和比较语句在同一处进行,就产生了顺序上的问题:是先加再比较还是先比较再加。如果是
d++
≤
n,那么就是先比较
d
和
n
的值,再把
d
加一。如果是
++d
≤
n,那么就是先把
d
加一,再比较加了一以后的
d
和
n
的值。
Ⅲ c语言中\n 与\\n的区别是什么
\n是换行符;\\n第一个\是转义字符,也就是说,\\n在屏幕上显示\n
Ⅳ C语言中,“n”和‘n’有什么区别
“n”是字符串
'n'是字符
两者不一样。
Ⅳ c语言的 n++和++n的区别是什么
n++ 是先返回在+1,
而++n 是先+1再返回
不明白继续往下看:
例:(n++)
int n = 3;
int a = 2 + (n++);
n是先返回在+1所以这个时候,
a = 2 + 3 = 5;
n = 3 + 1 = 4;
例:(++n)
int n = 3;
int a = 2 + (++n);
这个时候 n 是先+1 再返回的;
n = 3 + 1 = 4;
a = 2 + (3 + 1) = 6;
Ⅵ c语言编程中\n /n有什么区别怎么快速打出\这个符号
对应于scanf("...\n",...);
你输入n个数后,它是不会立即显示的,要等再接收到一个非(空格、制表符、回车)的输入,scanf语句才结束。
但请注意的是,最后输入的那个非(空格、制表符、回车)的东西是不会被这个scanf读进来的,而是留在输入流里。因此你需要多输入一个数字——>5个数字,来将缓冲区的前4个给到你的x1,x2,y1,y2。
Ⅶ C语言n++跟++n的区别
如果单独使用的话,
没有区别
如果是
int
m
=
++n;
和
int
m=n++;
这样的话:
m=++n;
相当于:
n=n+1;
m=n;
而
m=n++;相当于:
m=n;
n=n+1;