指针变量输出时的问题

[复制链接]
查看11 | 回复3 | 2011-8-5 16:39:32 | 显示全部楼层 |阅读模式
有时候我看到输出是
printf("%s",p)
我设p是指针变量
这里不加"*"
但有时候却要加"*"
而且有了指向指针的指针变量后
好像还要输出**p
我这里就实在搞不懂了
p *p **p输出时的区别
还有
当有指向指针的指针变量时
p,*p,**p到底什么算是什么意思啊

回复

使用道具 举报

千问 | 2011-8-5 16:39:32 | 显示全部楼层
p代表它所指向的变量的地址*p代表它所指向的变量的内容,即变量的值**p代表将变量的值作为地址的内存中的数据...
回复

使用道具 举报

千问 | 2011-8-5 16:39:32 | 显示全部楼层
p是所存储变量的地址,*p是变量本身,**p是所存储变量的地址的地址。因为p和**p都是地址,输出的应该是地质编码,一般是16进制,用%p格式输出。*p是变量本身,比如int就是int,string就是string。...
回复

使用道具 举报

千问 | 2011-8-5 16:39:32 | 显示全部楼层
当格式串为%s时,后边格式化输出的变量为一个地址。78
case 's': 79
s = va_arg(args, char *); 80
len = strlen(s); 81
if (precision < 0) 82
...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行