哥斯拉不说话 发表于 2015-5-18 07:01:42

C语言指针问题

两种情况都没有报错和提醒,为什么一个可以正常打印一个却不能呢?#include <stdio.h>

int main()
{
    char *p;

    p = "abc";

    printf("%s\n", p);// 这样可以
//printf("%s\n", *p);// 这样不可以

    return 0;
}

小人 发表于 2015-5-18 09:00:56

p 是char 型指针   
printf("%s\n", *p) //*p等于'a'字符,   跟   %s 的字符串不匹配

哥斯拉不说话 发表于 2015-5-18 13:03:43

小人 发表于 2015-5-18 09:00
p 是char 型指针   
printf("%s\n", *p) //*p等于'a'字符,   跟   %s 的字符串不匹配

是这样。。。

哥斯拉不说话 发表于 2015-5-18 13:09:41

小人 发表于 2015-5-18 09:00
p 是char 型指针   
printf("%s\n", *p) //*p等于'a'字符,   跟   %s 的字符串不匹配

p 是 char 型的指针,为什么可以指向 abc 这个字符串呢?

小人 发表于 2015-5-18 13:24:13

哥斯拉不说话 发表于 2015-5-18 13:09
p 是 char 型的指针,为什么可以指向 abc 这个字符串呢?

他是指针类型   
字符串 的读取是给出第一个字符的指针然后读到 '0' 结束所以 指针没问题   ;
你直接传了一个 'a' 给他当然不行了{:9_240:}
页: [1]
查看完整版本: C语言指针问题