作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在不知道它的大小的情况下遍历这个双指针。
char *arr[] = {"ant", "bat", "cat", "dog", "egg", "fly"};
char **ptr = arr; // Double pointer
我试过了,但是我得到了一个错误
while (*ptr){
printf("%s\n",*ptr);
ptr+=1;
}
我不想要与此类似但带有双指针的东西。
char *word = *ptr;
for (int i = 0; *(word + i) != '\0'; i++)
{
printf("%c", *(word + i));
}
最佳答案
你可以用 \0
确定字符串结尾的原因是当你将一个分配给一个指针时,一个空字节会自动放在结尾,注意字符串的定义是一个以 null 结尾的字符数组。您可以通过在末尾添加 NULL 元素来在字符串数组中模拟此行为:
char *arr[] = {"ant", "bat", "cat", "dog", "egg", "fly", NULL};
char **ptr = arr; // Double pointer
while (*ptr) {
printf("%s\n", *ptr);
ptr += 1;
}
这就是所谓的哨兵。
关于c - 如何在不知道大小的情况下遍历双指针。 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70340048/
我是一名优秀的程序员,十分优秀!