C语言中的for语句和n++、++i 语句

2025-05-13 20:24:53
推荐回答(5个)
回答1:

n++这种形式是后缀自增1运算,表示先使用n值,然后n=n+1自增1

++i这种形式是前缀自增1运算,表示先对i进行i=i+1自增1,然后再使用i值

如果是单独执行这样的语句,两者没有区别,如:

for( i=0; i<10; ++i ) printf("i=%d\n", i );//输出0-9

for( n=0; n<10; n++ ) printf("n=%d\n", n );//输出0-9

这两者都会循环10次,没有差别。而下面的语句:

for( i=0; ++i<10; ) printf("i=%d\n", i ); //输出1-9

for( n=0; n++<10; ) printf("n=%d\n", n ); //输出1-10

这两者是有区别的:

++i<10这种,先改变i值,然后判断,所以,循环9次

n++<10这种,先判断,然后改变n值,所以,循环10次

回答2:

首先,要明确n 与 i的区别:
n ,执行后,表达式的值为n,n自增1
i,执行后,表达式的值为i ,i自增1
表达式的值不同,但执行完后变量的值都自增1,所以用哪种自加都一样。

回答3:

n++是先判断后执行自加运算,++i是先执行自加运算后进行逻辑判断
举例来讲for(i=1;i<2;i++)会执行一次for循环内的语句,而for(i=1;i<2;++i)则不会

回答4:

如有疑问,Hi我

你的问题有点混乱,第一个函数里面的循环执行完后n的值为21,后面看不懂了

我猜你是为了区别++i和i++是吧?

简单的回答一下吧

没错,值是一样!但编译器处理过程不一样

不过你试试这个

#include

void main(void)
{
int i;

i = 8;
printf("%d\n", i++);

i = 8;
printf("%d\n", ++i);
}

原因很简单,就是前置++和后置++的区别,应该懂了吧。

回答5:

for语句的格式为for( ; ; ){ },其中for( 1 ; 2 ; 3)中位置1常常是变量的初始化,位置2是条件判断,位置3是变量的改变,例如:for(int i=0;i < 10 ; i++){},其中花括号中就是for 语句的主体语句。对于n++,++i,这是C语言中的操作符运算,就拿n++;来说,该语句先提取出n的值然后n自增,而++i却相反,该语句表示对i自增。例如:n = 1;i = 1;
a = n++;b = ++i;那么此时a = 1,而n变成2;b=2,i也是2。