我在c中看到了一些像这样的代码
int main()
{
int x = 4, y = 6;
long z = (long) x + y;
}
Run Code Online (Sandbox Code Playgroud)
即使在这种情况下它是隐含的,铸造的好处是什么?哪个操作先x + y或先x?
我正在阅读"K&R的C语言".现在我正在做按位节.我很难理解以下代码.
int mask = ~0 >> n;
Run Code Online (Sandbox Code Playgroud)
我正在使用它来掩盖另一个二进制文件的左侧像这样.0000 1111 1010 0101 //随机数
我的问题是当我打印var mask时它仍然是负-1.假设n是4.我认为移位〜0这是-1将是15(0000 1111).
谢谢你的回答
#include <stdio.h>
int main(void)
{
struct findEntry
{
int value;
struct entry *next;
};
struct entry n1, n2, n3;
struct entry *list_pointer = &n1;
n1.value = 100;
n1.next = &n2;
n2.value = 200;
n2.next = &n2;
n3.value = 300;
n3.next = (stuct entry *) 0;
while (list_pointer != (struct entry *)0) {
printf("%i\n", list_pointer->value);
list_pointer = list_pointer->next;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不明白语法(struct entry *) 0是什么,意思就在这里.在我正在阅读的书中,它说它是一个空指针.我尝试在网上看,但我不确切知道要输入什么.我为"空指针"获得的Google搜索结果与我的预期不同.