问题描述
我了解通常的while (*pointer)
用例是在使用字符串时。
char str[]= "string";
int i = 0;
while (*(str + i++));
当取消引用的字符为\0
时,循环结束。
但是,我有这段代码可以递归打印出字符串数组。
void print_array(char** arr,bool printComma) {
if (*arr) {
if (printComma) {
printf(",");
}
printf("%s",*arr);
print_array(arr + 1,true);
}
}
int main(int argc,char **argv) {
print_array(argv,false);
}
它按预期工作,并打印出char **arr
内部的字符串。
但是,我不了解系统如何知道数组的末尾,因为取消引用指针的指针会提供指向内存的值,我不确定该值也是什么。
此外,如果我将此样式与任何指针变量一起使用,循环是否一定会结束?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)