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

#include<stdio.h>
main()
{
int n;
for(n=10;n<=20;n++)
{
........
}
}
和另外一个程序
此处为函数调用
int power(int x,int n)
int x,n;
{
int i,p=1;
for(i=0;i<n;++i)
p*=x;
return(p)
}
两个程序段里面的自加,第一个程序段里面的n++执行完后n的值是11,而第二个程序段任意给n一个数等于3,执行完一次循环后,里面的++i的得出的数是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次

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-10
首先,要明确n 与 i的区别:
n ,执行后,表达式的值为n,n自增1
i,执行后,表达式的值为i ,i自增1
表达式的值不同,但执行完后变量的值都自增1,所以用哪种自加都一样。
第2个回答  2011-02-10
n++是先判断后执行自加运算,++i是先执行自加运算后进行逻辑判断
举例来讲for(i=1;i<2;i++)会执行一次for循环内的语句,而for(i=1;i<2;++i)则不会本回答被提问者采纳
第3个回答  2011-02-10
如有疑问,Hi我

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

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

简单的回答一下吧

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

不过你试试这个

#include <stdio.h>

void main(void)
{
int i;

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

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

原因很简单,就是前置++和后置++的区别,应该懂了吧。
第4个回答  2015-09-19
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。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网