A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海江1 中级黑马   /  2014-6-16 15:04  /  911 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main()
{
         char name[]="jack";
         int *p;
         p=name;
         printf("%s",name);    或者写成printf("%s",p);
此时的name和p都代表的是什么??????应该不是地址吧






}

2 个回复

倒序浏览
p=name ,根据赋值兼容原则,类型不匹配,有警告。name和p都指向存放jack的内存,强制运行可以打印结果。
回复 使用道具 举报

#include <stdio.h>

int main()
{
    char name[]="jack";
    char *p;
    p=name;
    printf("%s",name);
    printf("%s",p);
}
代码应该改成这样  p是指针 指向 jack这个字符串所在的内存地址
name事实上也是一个指针 指向 jack

  p=name;  就代表着  把name指向的指针地址 给 p

事实上都是 指针。 只不过表现的形式不同  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马