Category 羁绊系统

我在C:null char == '\0' == NULL中学到了这一点,并在下面编写了一个循环,以便从C语言的char[]的开头到结尾进行读取。

代码语言:javascript复制// case #1

char buf[32];

while (buf[i] != NULL){

//do something...

} 然而,我的gcc编译器给了我一个警告:指针和整数的比较。有人提到我混淆了两个不同的概念: NULL代表指针,‘0’代表字符。因此,为了消除警告,我应该使用'\0‘,因为我的循环测试了char。

现在,我正在编写一个链接列表,并测试头部指针是否指向某个节点。由于它是结构,所以使用if (h1 == NULL)是合理的,但显然编译器在我使用if (h1 == '\0')时也会编译,即使节点是结构而不是char。有人能提供一些帮助吗?为什么在这种情况下可以同时使用“0”和“NULL”,而在第一种情况下却不能同时使用?

代码语言:javascript复制// case #2

struct ListNode {

int val;

struct ListNode *next;

};

top
Copyright © 2088 娜拉物语最新活动_二次元冒险手游官网 All Rights Reserved.
友情链接