【C学习点滴】NULL是指针

来源:互联网 发布:董小飒电竞淘宝店 编辑:程序博客网 时间:2024/05/17 04:07

做一道题的时候我希望能得到一个字符串的末尾。为此我用一个while循环逐次比较array[i]与NULL是否相等,即

while(array[i]!=NULL)

i++;

编译时出现

warning: comparison between pointer and integer

这样的错误。查了一下,stackoverflow上刚好有人提出了类似了问题,提问者用了如下代码:

while (str[i] != NULL)
回答者的解释是:str[i] is a character. NULL is a pointer. You can't meaningfully compare those two data types 

错误原因在于NULL是指针。

并说将NULL替换为‘\0'即可。

于是我测试一下

#include<stdio.h>

char *array="Hello world!";
int i;

int main(void)
{
   i=0;
   while(array[i]!='\0')
   i++;
   printf("%d",i);
}

果然可以正常运行了。其实要得知一个数组的长度,可以调用库文件<string.h>下的strlen函数。这也是答案的做法。



0 0
原创粉丝点击