请问C语言中那个i++到底是个怎样的运算规则阿,怎么当i=15时,运算结果是14阿!知道的帮个忙,谢谢!

作者&投稿:慎生 (若有异议请与网页底部的电邮联系)
c语言,如图程序,里面的i++;具体运算情况是怎么样的?是先输出,然后判断再加一吗?~

printf( "%d",i++),输出的是i的值,执行完这行后,i=i+1。

printf( "%d",++i),输出的是i+1的值,执行完这行后,i=i+1。

结果为16,说明用的编译环境是VC++6.0,如用TC环境,则结果为18。
VC环境下,对于前增减运算(++i),自增自减是按从左到右扫描顺序,以一个运算符两边涉及前自增减的两个运算对象为单位进行之前增减的;对于后增减运算(i++),是以整个表达式为单位最后统一增减的。
如(i++)+(++i)+(++i)是先对第一个加法运算符两端的运算对象处理,先自增一次再求解表达式前两项,然后再对i自增一次再求前一步骤的值与最后一项的和,若初始值i=1,则最终结果2+2+3=7。

(++i)+(++i)+(++i),首先扫描求解前半部分,即(++i)+(++i)的值。先对i进行两次自增运算,i的值变为5,再计算i+i的值为5+5=10,然后再求解后半部分,即10+(++i)的值,先对变量i自增1次,i的值变为6,再计算10+6=16,所以最终把16赋给变量c。
扩展资料
表达式(++i)+(++i)+(++i)结果的源代码如下
#include
#include
int main(int argc,char** argv)
{
int i=3,j;
j=(i++)+(i++)+(++i);
printf("i = %d, j = %d
",i,j);
exit(0);
}

a++和++a, 前一个先把a用了 然后再给a加一,后一个 先把a自己增加一 然后 再 做运算;
例如:
x=5;y=++x;
x先加到6,然后再将x的值应用到表达式y=x中,y值为6 x,y都为6
x=5;y=x++; x为6,y为5.

i++是先取出i进行运算,运算完了i才自加
例如i=14,j=i++的话,那就是j=i,i=i+1;就是j=14,i=15

int i=14;
int j = i++; //先把i的值赋给j,然后在让i加1,相当于j=i;i = i+1;
这时j为14,i为15,


C语言中如何用I(x,y)表示图像某点的像素值
1、可以变成灰度图也可以不变。这里假设你的图像都是IPL_DEPTH_8U类型。2、如果变成灰度图,就是单通道图像,获取的就是每一个像素点的灰度值。IplImage* img = cvLoadImage("test.bmp", 0);for (int i = 0; i < img->height; i++){ for (int j = 0; j < img->width; j++){ ...

c语言中static int i=1什么意思
这个要看两种情况的:这个语句是放在函数内,那么这就是一个静态局部变量,当函数结束内存不释放,它的生命周期等同全局变量;这个语句放在函数歪,那么表示这个是一个不可跨文件的全局变量,这个变量不可以被其余的源程序文件extern。

问下这个c语言题目中的i[s]作何解。
C和指针里讲到过这种情形。实际上对编译器来说s[i]和i[s]是等价的。原因是在于C实现下标的方法,C通过指针偏移来实现下标。所以i[s]等价于*(i + s)等价于*(s + i)但是i[s]这种写法显然是不可取的,因为它大大降低了程序的可读性。

C语言程序中!i1&i2是什么类型的
这就是个表达式·~~~i1和i2为两个变量·~~一般为int类型 & 是位与运算符 !是非运算符 !i1&i2 按照优先级,会先对i1进行非运算,然后结果与i2进行位与运算。

c语言中++i是什么意思?
++i是使用i之前先使i加一。i++是使用i之后再加一。如果不能理解,那么可以理解为:++i是先计算,再操作,i++是先操作,再计算。C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持...

c语言中c[i]++是什么意思?
就是 c[i] = c[i]++ 的意思。但是在 c[i] 的值赋给 c[i] 过后 c[i]的值才自加1 --- 如果在循环过程中,更高效的写法应该是直接写:c[i]++;就OK了。

在C语言中-i和i-的区别
比如:a=--i;相当于i--; a=i;a=i--;相当于a=i; i--;

c语言中给i赋值1。j赋值2。k赋值3为什么i-=j-=k编译器的答案是 2 -1...
先执行j-=k,这时候j的值是-1 然后执行i-=-1,所以i的值是2 赋值语句是从右边向左边赋值,所以就是这样的答案

c语言中, i+=1的意思是什么
c语言中,i+=1就是i=i+1。i+=1是i=i+1的缩写。它们表示的意思都是相同的,并且在运行时的结果也是相同的,c语言中类似这样的缩写还有a+=b →a=a+b 、a-=b →a=a-b 、a*=b →a=a*b 、a\/=b →a=a\/b 5、a%=b →a=a MOD b ,即a\/b的余数。

c语言中,i=10,i++ + ++i +++i的结果是多少?a=0,a++ || a++的值是多少...
(++1)==12;此时i=12;第三个++i返回加1后的i,(++1)==13;此时i=13;结果是11+12+13=36;a=0 第一个(a++)==0;此时a=1;第二个(a++)==1;此时a=2;结果就是(0||1)==1 ++a;返回加1之前的啊,然后a才加1;a++;先a加1,在返回加1之后的a;希望楼主能看懂 ...

枝江市13463589660: c语言中i++,i -- .++i,--i是什么意思 -
百孙复方: i++是先参加运算后再自身加1,,i++等同于 i=i+1, i--是先参加运算后再自身减1 如 i=i-1 ++i 是先自身加1后 再参加其它运算 i=(i+1), --i 也是同样道理 i=(i-1)

枝江市13463589660: c语言中,[1] i++是什么意思 -
百孙复方: i++表示i自增1,在单独使用的时候,++i、i++和i=i+1是完全一样的.但是,++i和i++是由区别的.++i是先+1,再做其他运算,i++相反,先做其他运算,完了再+1.比如:当i=2的时候,a = i++;最终结果a=2,i=3 a = ++i;结果是 a=3,i=3

枝江市13463589660: C语言 请问代码里面的i -- ,i++什么意思 -
百孙复方: ++i是指先把i加上1后在对i进行运算.举个例子 i=0;n=0; 当执行n=++i后;是 n的值就是1;i的值为1;而若是执行n=i++则,n的值为0.i为1; 换句话说n=++i是先执行n=i;在对i自加运算. n=i++;是先执行i的自加运算再把i的值赋予n. 扩展资...

枝江市13463589660: C语言中m+=i++表示什么意思 -
百孙复方: m+=i++ 这是赋值运算符与自增运算符的综合使用,该表达式等价于如下2条表达式: m = m + i; i++;如果表达式换成m+=++i,则改表达式等价于: i++; m = m + i; // 因为是++i,所以i的值需要先进行加1,之后再参与表达式的运算;而i++是先将i的值代入表达式计算,表达式计算完后,i的值再加1

枝江市13463589660: i=++在c语言中是什么意思
百孙复方: 亲,您好:c语言中没有这种语法.您看到的可能是i=i++吧i++相当于i=i+1;

枝江市13463589660: C语言中i++和j++=分别是什么意思 -
百孙复方: i++表示先引用i的值,再使i的值加1,i++当成右值看待(i++=3,这个错误).j++同理 ++表示先使i的值加,再引用i的值,++i当成左值看待(++i=3,这个正确).++j同理

枝江市13463589660: 在C语言中:i++;是赋值语句吗? -
百孙复方: 可以视为赋值语句,因为它等价于:i=i+1;

枝江市13463589660: c语言中i++是怎样的,为什么(i++)=1是错误?而(++i)=1是对的? -
百孙复方: i++意思是执行代码后自增一,++i是先自增一再执行代码.你的代码都是错的!""=""这个是附值语句,i=1;这是使i的值为一的意思,i==1;这才是i等于一的意思.编程的符号跟数学不同!

枝江市13463589660: C语言中的 - i++是什么意思 -
百孙复方: -和++优先级相同,但他们都是从右到左结合,所以等价于 -(i++).即想i后自增,再返回相反数.

枝江市13463589660: 计算机C语言中i++和++i有什么区别?最好能讲的浅显易懂点,谢谢! -
百孙复方: 总的来说:i++与++i最重要的区别在于:i++先使用后自增如:int i=0,s=0;s=s+i++;printf("s=%d,i=%d",s,i);这时s的值为0(因为先使用i的值来进行相加,而i和s的初值都为0所以相加的结果还是为0,而i的值会变为1);而++i则不同,++i是先自增后使用如:int i=0,s=0;s=s+(++i);/*为了使你更好的理解我给++i加了个括号,不加也是可以的*/printf("s=%d,i=%d",s,i);输出的结果都为1;在进行计算时i自己先加1后再与s相加;所以两个值都为1;

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