如题所述
-i--å°±æ¯å è¿è¡i--è¿ç®ï¼ç¶åååå ¶è´å¼ã
ä¸é¢æ¯Cè¯è¨è¿ç®ç¬¦çä¼å 级ï¼
--ä¸è´å·å¤äºåä¸ä¼å
级ï¼èç»åæ¹åæ¯ä»å³å°å·¦ï¼æ以æ¯å
è¿è¡i--è¿ç®ï¼ååè´å·ã
i--å°±æ¯æièªå1ï¼ä½æ¯å®çè¿åå¼å´æ¯iï¼è¿å°±æ¯i--ä¸--içåºå«ï¼--içè¿åå¼å°±æ¯i-1äºã
å ·ä½çä¸é¢ä¸ä¸ªç¨åºï¼
#include<stdio.h>int main(void)
{
int i = 2;
int j = 2;
printf("içåå§å¼ç为%d\n",i);
printf("jçåå§å¼ç为%d\n",j);
printf("-i--çå¼ç为%d\n",-i--);
printf("- --jçå¼ç为%d\n",- --j);
printf("içå¼ç为%d\n",i);
printf("jçå¼ç为%d\n",j);
}
ç»æ为ï¼
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2018-04-13
&和~都是位运算符
所谓位运算是指进行位的运算。
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
i = ((i + 3)&(~3))
3先按位取反,假设均为char型
3的二进制为 0011 按位取反则为 1100
再与(i + 3)的结果按位与
如果i为4的话,则i+3=7 二进制为0111
结果 0111 & 1100 = 0100
所以结果为4本回答被网友采纳
所谓位运算是指进行位的运算。
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
i = ((i + 3)&(~3))
3先按位取反,假设均为char型
3的二进制为 0011 按位取反则为 1100
再与(i + 3)的结果按位与
如果i为4的话,则i+3=7 二进制为0111
结果 0111 & 1100 = 0100
所以结果为4本回答被网友采纳
第2个回答 2010-06-04
好果i=7,那,7%2就是余1
如果是5%3,这就是余2
还有一个是"/"
你可能是这两个符号搞混
/这个符号是求模的
例5/3值为1
if(i%2)==2楼主这种写法就不正确!应该是if(i%2==2)
0为假,1为真 if(i%2)表示当i%2为真的时候执行后面的语句!
如果是5%3,这就是余2
还有一个是"/"
你可能是这两个符号搞混
/这个符号是求模的
例5/3值为1
if(i%2)==2楼主这种写法就不正确!应该是if(i%2==2)
0为假,1为真 if(i%2)表示当i%2为真的时候执行后面的语句!
第3个回答 2018-02-18
C数组中的第S[i]下标的值自加;例如:
int S[5]={1,2,3,4,5};
int C[5]={1,2,3,4,5};
int i=2;
S[i]=3; //S数组里下标为2的值为3
C[S[i]]=4 //C数组里下标为3的值为4
C[S[i]]++等于4+1 //所以得出这行
注意:上面的格式只为好理解,不是正确的代码写法
int S[5]={1,2,3,4,5};
int C[5]={1,2,3,4,5};
int i=2;
S[i]=3; //S数组里下标为2的值为3
C[S[i]]=4 //C数组里下标为3的值为4
C[S[i]]++等于4+1 //所以得出这行
注意:上面的格式只为好理解,不是正确的代码写法
第4个回答 2010-06-04
这个嘛我来告诉你咯
我刚好学了这个
你知道在程序中0代表假 1代表真
因为i%2的值不是1就是0(这个很重要,就可以用它代表真和假了)
真是因为这种巧合就没有必要写==1之类的了
我刚好学了这个
你知道在程序中0代表假 1代表真
因为i%2的值不是1就是0(这个很重要,就可以用它代表真和假了)
真是因为这种巧合就没有必要写==1之类的了