注册招标师考试课程:i=2是不用说了;但j怎么的出的啊!
来源:百度文库 编辑:高校问答 时间:2024/05/15 10:31:08
已知int i=1,j;执行语句j=-i++;后,i 和j的值分别为多少?
j=-i++
i=2
j=-1
分析:
根据算术符优先顺序,上述表达式等价于
j=-(i++);
首先应该理解,j的值是(i++)表达式的负值,而i为1,所以(i++)这个表达式的值是1,所以-(i++)是-1,也就是j的值,计算完(-(i++))这个表达式的值后,i自己加1,所以i=2.
另外,4楼不能理解为j=-i,而应该理解为j=-(表达式值),其中这个表达式i++的值是1.否则的话,就解释不了下面的式子:j=(++i)+(++i)+(++i);
-1
负号 - 的优先级低于 ++ ,所以j=-i++相当于j=-(i++)
,另外需要注意自加运算符的运算过程
所以结果应该是这样的:
i = 2, j = -1
另外,不妨再试一试:j = -++i;
答案应该是 i = 2, j = -2
先是j=-i,然后再执行i++(初学者的想法,高手纠错)
i = 2, j = -1
因为语句j=-i++,
首先将-i赋给j,然后执行i++.
如果改为j=-++i,
那么值行结果为i = 2, j = -2
因为首先值行++i,然后将-++i赋给j。
结论:i++是先赋值,再进行自加运算
++i是先进行自加运算,再进行赋值。
j=-1
变为j=-(i++)
可以看一下算符的优先级.
i=2是不用说了;但j怎么的出的啊!
int i , j=2, *p=&i; *p=*&j; 完成的功能是?
for(i=0;i<n-1;i++){ m=i;for(j=i+1;j<n;j++);----}为什么for(j=i+1;j<n;j++)的运行次数是n(n-1)/2次呢?
i,j,k是int,i=j=k=-1,执行i++||++j&&++k后,ijk的值分别变成了0,-1,-1,请问k的值为什么是-1?
女人最想嫁给怎么的男人?钱就不用说了。
手背上不知怎么的,多长出了很小的一块肉,有很久了,这是怎么一回事啊``
下面的算法中,“i=i-j+1"是怎么来的?
xx[I][j]+=1的意思
我下载了金山打字软件,但不知道怎样安装,那个解压是怎么的啊
C编程:求工友几组i,j,k符合算式ijk+kji=1333,其中i,j,k是0~9之间的一位整数.