gcc 4.4.4 c89
我只是在试验一个int数组.我想到了一些东西.我可以终止它吗?例如,我使用0到nul终止.但是,0可能是此数组中的有效值.
下面的代码将在5之后终止.尽管我的意思是0是有效数字.但是,我可以指定数组的大小.但在这种情况下,我不想这样做,因为我只对这个特殊问题感兴趣.
非常感谢任何建议,
#include <stdio.h>
static void test(int *p);
int main(void)
{
int arr[] = {30, 450, 14, 5, 0, 10, '\0'};
test(arr);
return 0;
}
static void test(int *p)
{
while(*p) {
printf("Array values [ %d ]\n", *p++);
}
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*zek 14
简而言之,没有.技术上,nul字符在字符串中也同样有效,它只是我们使用它们来标记字符串结尾的约定,并且所有标准库函数都期望这样.\0\0对于字符串需要包含a的情况,有"双nul终止"字符串结束\0,但当然你会遇到无法存储\0\0在字符串中的问题.
如果您不想单独存储数组的大小(或使用类似技巧sizeof),您需要提供一个可以存储在该类型中的标记,但您知道它不会成为数组的一部分; 45只要您确定arr不会将其作为有效值,您就可以使用它,它只需要是唯一的