指针和字符串

[复制链接]
查看11 | 回复5 | 2012-6-29 15:50:30 | 显示全部楼层 |阅读模式
因为p本身是一个指针,同时它也代表存储在这个地址的数值,而本身printf函数里面的参数已经规定了输出的形式(字符串),所以printf("%s",p)没错。而*p则是取出p的地址的数值,而变成字符的话会变成一堆不确定的字符(除非你知道你机子里面所以字符的对应关系……那就该膜拜你了),而不是你的目标字符串。...
回复

使用道具 举报

千问 | 2012-6-29 15:50:30 | 显示全部楼层
因为你用%s操作符,就是打印后面地址的字符串。如果你后面写的是*p,那么就会发生类型不符的错误,编译通不过...
回复

使用道具 举报

千问 | 2012-6-29 15:50:30 | 显示全部楼层
嗯哼,char *p定义的是一个名为p的类型char的的指针变量 这个指针变量名字就是p而不是*p printf("%s",*p)表示的是输出p指针指向的东西,也就是a...
回复

使用道具 举报

千问 | 2012-6-29 15:50:30 | 显示全部楼层
p的类型是char **p的类型是char "%s"需要的就是一个char *类型,而不是char类型...
回复

使用道具 举报

千问 | 2012-6-29 15:50:30 | 显示全部楼层
你可以试一下,如果printf("%s",*p)会出现什么结果。应该是存放a的地址吧~...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836