吴敌小白 发表于 2020-4-4 22:53:51

指针数组内容求助

#include<stdio.h>
#include<string.h>
int main()
{
        void print(char *name[],int n);
        char * name[ ] = {"Follow","BASIC","Great","Wall","Computer"};       //这一行内容在visual studio输入进去总是显示错误
        int n = 5;
        print(name ,n);
        return 0;
}
void print(char*name[], int n)
{
        int i = 0;
        char*p;
        p = name;
        while (i < n)
        {
                p = *(name+i++);
                printf("%s\n",p);
        }


第六行内容在visual studio输入进去总是显示错误,字符串下面显示的红色波浪线;最后一行的p输出不是地址吗?为什么这儿能输出上面的字符串?这是树上的一段内容,谢谢!

sunrise085 发表于 2020-4-4 23:02:23

第一个问题、你不能把常量赋值给指针,指针只能指向变量。
第二个问题、%s输出字符串,传进去的就是字符串首地址啊,指针就是指向字符串的首地址的,所以用指针p没任何问题。

倒戈卸甲 发表于 2020-4-4 23:24:09

鼠标移到红线上看错误提示吧。这个语句是很正常的c语句,报错可能是你编译器的we问题。
后一个问题楼上已经回答了,打印字符串时%s这个占位符需要的就是字符串首地址

吴敌小白 发表于 2020-4-5 10:43:21

sunrise085 发表于 2020-4-4 23:02
第一个问题、你不能把常量赋值给指针,指针只能指向变量。
第二个问题、%s输出字符串,传进去的就是字符串 ...

这段内容是我在书上看到的,编出来做一下,不应该有错误(第一个问题)谭浩强278页

吴敌小白 发表于 2020-4-5 10:46:40

倒戈卸甲 发表于 2020-4-4 23:24
鼠标移到红线上看错误提示吧。这个语句是很正常的c语句,报错可能是你编译器的we问题。
后一个问题楼上已 ...

这段内容是我在书上看到的,编出来做一下,不应该有错误(第一个问题)谭浩强278页

倒戈卸甲 发表于 2020-4-5 10:58:25

吴敌小白 发表于 2020-4-5 10:46
这段内容是我在书上看到的,编出来做一下,不应该有错误(第一个问题)谭浩强278页

不是都说了让你看错误提示了吗?因为一个正常的语句我们没办法直接去判断错误在哪里,它没有一个通用的说法,只能看看你编译器给的原因,然后解决掉
页: [1]
查看完整版本: 指针数组内容求助