相关疑难解决方法(0)

NULL,'\ 0'和0之间有什么区别

在C中,似乎有零各个值之间的差- NULL,NUL0.

我知道ASCII字符的'0'计算结果为480x30.

NULL指针通常定义为:

#define NULL 0
Run Code Online (Sandbox Code Playgroud)

要么

#define NULL (void *)0
Run Code Online (Sandbox Code Playgroud)

另外,也有似乎评价的NUL人物.'\0'0

是否有时候这三个值不相等?

这在64位系统上也是如此吗?

c null pointers

287
推荐指数
6
解决办法
28万
查看次数

这段代码如何在不使用sizeof()的情况下确定数组大小?

通过一些C面试问题,我找到了一个问题,指出“如何在不使用sizeof运算符的情况下在C中查找数组的大小?”,并提供以下解决方案。它有效,但是我不明白为什么。

#include <stdio.h>

int main() {
    int a[] = {100, 200, 300, 400, 500};
    int size = 0;

    size = *(&a + 1) - a;
    printf("%d\n", size);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如预期的那样,它返回5。

编辑:人们指出了这个答案,但是语法确实有所不同,即索引方法

size = (&arr)[1] - arr;
Run Code Online (Sandbox Code Playgroud)

因此,我认为这两个问题都是有效的,并且对该问题的解决方法略有不同。谢谢大家的大力帮助和详尽的解释!

c arrays size pointer-arithmetic language-lawyer

130
推荐指数
3
解决办法
8004
查看次数

标签 统计

c ×2

arrays ×1

language-lawyer ×1

null ×1

pointer-arithmetic ×1

pointers ×1

size ×1