最近遇到一道C面试编码题。像“void Foo(char** sarr)”这样的通用函数。它给了我一个输入
char* data[] = {"4352", "3242", "2432143", "234", "", "324", 0}
我是 C 的新手,但熟悉 C++。对于这种情况,我真的不知道这个 char* 数组中的这个 '0' 是什么意思。我知道 C 有一个字符串终止符 '\0'。但是0是什么意思呢?或者这个输入是错误的/无效的? 提前致谢。
最佳答案
0
是在 C 中编写空指针常量的方法之一。如果他们这样写可能会更明显:
char* data[] = {"4352", "3242", "2432143", "234", "", "324", NULL};
这是等价的。
空指针被用作数组结尾的指示符(类似于字符 '\0'
标记字符串结尾的方式。如果您正在遍历数组,你可以使用类似的东西:
for (var i = 0; data[i] != 0; i++) {
// do something with data[i]
}
你也可以使用data[i] != NULL;
,它们是等价的。
关于c - "0"在C中的二维字符数组(char * [])中意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41026087/