小编The*_*ain的帖子

转换隐含时为什么要转换?

我在c中看到了一些像这样的代码

int main()
{
    int x = 4, y = 6;
    long z = (long) x + y;

}
Run Code Online (Sandbox Code Playgroud)

即使在这种情况下它是隐含的,铸造的好处是什么?哪个操作先x + y或先x?

c casting

4
推荐指数
1
解决办法
53
查看次数

c不能将负数转移到右边

我正在阅读"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).

谢谢你的回答

c bit-manipulation

2
推荐指数
1
解决办法
512
查看次数

什么是c中的空指针

#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搜索结果与我的预期不同.

c null pointers

0
推荐指数
2
解决办法
2119
查看次数

标签 统计

c ×3

bit-manipulation ×1

casting ×1

null ×1

pointers ×1