【发布时间】:2015-01-10 05:42:40
【问题描述】:
我有以下代码:
char alfabeto[] = {'a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z'};
int i = 0;
printf("|");
do
{
printf("%c |",alfabeto[i]);
i++;
}while(alfabeto[i]!= '\0');
使用 NULL 我收到以下警告:
warning: comparison between pointer and integer [enabled by default] in C
但是使用'\0' 可以编译。我知道哪个 '\0' 用于终止字符字符串,而 NULL 用于与指针进行比较。但是它们的价值不一样吗?
【问题讨论】:
-
请注意,您的
alfabeto字符数组不是以 null 结尾的(这意味着它不是字符串),因此无法保证循环何时终止,或者之后会打印什么垃圾z.