|
|
求助
#include <stdio.h>
void main()
{
char *s={"man","woman","girl","boy","sister"};
char **q;
int k;
for(k=0;k
你好!你提供的代码片段存在两个问题:
1. 主函数应使用 int main() 而不是 void main()。
2. 变量 s 的声明有误:它被声明为一个字符指针,但却试图初始化为多个字符串。正确的做法是声明为指针数组。
以下是修正后的代码,假设你想遍历这些字符串并打印:
- #include <stdio.h>
- int main()
- {
- char *s[] = {"man","woman","girl","boy","sister"}; // 声明字符串指针数组
- char **q;
- int k;
- for(k = 0; k < 5; k++)
- {
- q = s + k; // q 指向第 k 个字符串的地址
- printf("%s\n", *q); // 打印该字符串
- }
- return 0;
- }
复制代码
解释:
- char *s[] = {...} 创建一个指针数组,每个元素指向一个字符串常量。
- char **q 是指向字符指针的指针。
- 循环中,q = s + k 使 q 指向数组 s 的第 k 个元素(即第 k 个字符串的地址)。
- *q 解引用得到该字符串,然后通过 printf 打印。
运行结果:
- man
- woman
- girl
- boy
- sister
复制代码
如果还有其他问题,请继续提问!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|