Tag: 运算符

为什么C / C ++中没有^^运算符?

& has && 。 | 有|| 。 为什么不^ ^^ ? 我知道它不会短路,但会有不同的语义。 在C中, true是任何非零值。 按位异或并不总是与逻辑XOR相同: int a=strcmp(str1,str2);// evaluates to 1, which is “true” int b=strcmp(str1,str3);// evaluates to 2, which is also “true” int c=a ^^ b; // this would be false, since true ^ true = false int d=a ^ b; //oops, this is true again, […]

需要帮助理解K&R C第2章中的“getbits()”方法

在第2章,关于按位运算符的部分(第2.9节),我无法理解其中一个示例方法是如何工作的。 这是提供的方法: unsigned int getbits(unsigned int x, int p, int n) { return (x >> (p + 1 – n)) & ~(~0 << n); } 这个想法是,对于给定的数字x ,它将返回从位置p开始的n位,从右边开始计数(最右边的位是位置0)。 给定以下main()方法: int main(void) { int x = 0xF994, p = 4, n = 3; int z = getbits(x, p, n); printf(“getbits(%u (%x), %d, %d) = %u (%X)\n”, x, […]

lvalue需要作为递增操作数错误

#include int main() { int i = 10; printf(“%d\n”, ++(-i)); // <– Error Here } ++(-i)什么问题? 请澄清。

**在**中意味着什么

当一个物体在开头有2个星号时,它意味着什么? **variable

C中的“&&”和“和”运算符

我试图计算两个整数的最大公分母。 C代码: #include int gcd(int x, int y); int main() { int m,n,temp; printf(“Enter two integers: \n”); scanf(“%d%d”,&m,&n); printf(“GCD of %d & %d is = %d”,m,n,gcd(m,n)); return 0; } int gcd(int x, int y) { int i,j,temp1,temp2; for(i =1; i <= (x<y ? x:y); i++) { temp1 = x%i; temp2 = y%i; if(temp1 ==0 and […]