KXHH 发表于 2022-2-17 18:51:44

p与*p的一些疑问

正确代码:
printf("您输入的内容是:%s",p);
错误代码:
printf("您输入的内容是:%s",*p);
题目要求是打印出指针p的内容。
问题:我的理解是*p是指针p的值,然后用%s读取p的值,但打印出来的是一个16进制的数,各位大哥帮忙说说我的理解有哪些错误,应该怎样理解呢?

jackz007 发表于 2022-2-17 19:30:38

本帖最后由 jackz007 于 2022-2-17 19:34 编辑

    printf("您输入的内容是:%s" , s) ;
    printf() 对应于格式描述符 "%s" 的输入参数 s 必须是一个 char * 型,也就是说,必须是一个指向字符的指针。
    printf("您输入的内容是:%s" , * p) ;
    那么,就是说,在本例中,* p 就必须是一个指针才行,也就是说,p 必须这样定义才符合要求:
    char ** p ;
    可是,估计你的 p 是这样定义的:
    char * p ;
    于是,就出错了。      

KXHH 发表于 2022-2-18 23:25:46

jackz007 发表于 2022-2-17 19:30
printf() 对应于格式描述符 "%s" 的输入参数 s 必须是一个 char * 型,也就是说,必须是一个指向 ...

谢谢大哥!!
页: [1]
查看完整版本: p与*p的一些疑问