C语言中的 i! 是什么意思

if (i!=cc) fwrite(&stu[i],sizeof(struct Student),1,fp);是这样的
2025-02-25 03:22:10
推荐回答(5个)
回答1:

这个是c语言中的,按位取反操作
举个例子
~100=-101,
首先看等号左边
(100)
的二进制表示为:
0110
0100
按位取反的意思就是每一位取反,0变1,1变0
所以:
~100
的二进制表示为:1001
1011
所以等号左边=1001
1011
再看右边
-101.
一旦看到出现负数,那么这个数一定是按有符号数的规则来表示的。一个二进制数
按位取反并加一以后就可以得到它自己的负数的补码,也就是说:
~x+1=-x
所以,我们把101按位取反加一
先取反:
~101=10011010
再加一:
~101+1=10011011=-101
所以等号右边=10011011=左边,所以等号成立。
p.s:补充一句,计算机内存里的逻辑存储位是非常复杂的,我这里即使讲得再清楚也无法保证你完全明白。
一般来说,汇编语言的书的开头部分会详细讲解这部分知识以服务于汇编语言,请参阅之。

回答2:

i! -- 如果在注解行内,它是注解。

C 语言注解:
在 // 以后,换行以前是注解
在 /* 到 */ 之间的内容是注解。

i! -- 如果在" " 之间是,它是字符串,在' '之间是字符值。

如果是 || (假定你提问中的符号打错了), 它是逻辑“或”运算。

如果是 !i (假定你提问中的符号打错了), 它是i的逻辑“非”运算

回答3:

首先,C语中的i肯定不是运算符,要么是变量,要么是字符
其次,!在C语言中是 非 运算符,并无其它含义,还是就是它字符,那也应该表示过\!
而i!表示i的阶乘是数学的表示方法,语言里没有这样的运算符,要求i的阶乘,必须用循环.
所以说i!单独使用,C语言里肯定是语法错误,你要看看后面还跟着什么

就是说:if i不等于CC,write数组stu第i个元素.......

就是不等于的意思

回答4:

if (i!=cc) fwrite(&stu[i],sizeof(struct Student),1,fp);

!本来就有非的意思~其中的“!=”就是非等于,也就是不等于的意思~~就是i不等于cc
你不能把i!放在一块啊。。。真正的运算符可是“!=”呀~

回答5:

单独运算“i!”表示i的阶乘,但在你这个程序里,似乎不应该把它们连起来,因为“!=”是不等于的意思。