找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1668|回复: 0
打印 上一主题 下一主题
收起左侧

printf(" %p\n")

[复制链接]
跳转到指定楼层
楼主
ID:107189 发表于 2016-3-6 13:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、printf参数就是挺多了,我也是不少都没用过,呵呵
C/C++ code %a                浮点数、十六进制数字和p-记数法(C99)
%A    浮点数、十六进制数字和p-记法(C99)
%c    一个字符 
%d    有符号十进制整数 
%e    浮点数、e-记数法
%E    浮点数、E-记数法
%f    浮点数、十进制记数法  
%g    根据数值不同自动选择%f或%e.
%G    根据数值不同自动选择%f或%e.
%i               有符号十进制数(与%d相同)
%o    无符号八进制整数
%p    指针    
%s    字符串
%u    无符号十进制整数
%x    使用十六进制数字0f的无符号十六进制整数 
%X    使用十六进制数字0f的无符号十六进制整数
%%    打印一个百分号
2、
int main()
{
    int i = 10;
    printf("%0X\t%p\n",&i,&i);
    return 0;
}
//输出:
22FF74  0022FF74
3、
  任何变量都有地址,变量名指向它的内容(指针的内容是地址或者非指针类型内容可能是char int等),取地址一般得加&,可以通过%p打印出来,而指针特殊在他本身内容是地址,为此,打印%p的时候呢,如没有加&是打印的指针的内容(存的地址),而按照区地址一般加&的原则来打印指针的时候呢,打印的是指针的地址而不是其内容地址。
实践:
C/C++ code
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int a=8;
    int *p;
    int *p2;
    printf("%p\n",&a);
    p=&a;
    printf("%p\n",p);
    printf("%p\n",*p);
    p2 = p;
    printf("%p\n",p2);
    printf("%p\n",p2);
    printf("p=%p\n",&p);
    printf("p2=%p\n",&p2);
    printf("%d\n",*p2);
   
    return 0;
}


问:如果想打印p指针本身的地址,如何弄?
答:printf("%p",&p);
问:p2=p是如何赋值的?
答:p的指针内容(里面存的是个地址)赋给p2。
问:p,p2存储的内容(地址)相同,它们两个的地址相同?
答:不同,可以通过打印他们的地址:printf("%p",&p); printf("%p",&p2); 来对比一下。
4、
306771d2 at 2010-2-23 11:14:33 C/C++ code
//这样理解的吧;
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int a=8;
    int *p;
    int *p2;
    printf("a  value  :%p\n",&a);//a的地址
    p=&a;
    printf("p  value  :%p\n",p);//把p的值按地址打印,p的是a地址
    printf("%p\n",*p);//p指向的值 按地址打印
    p2 = p;
    printf("p2 value  :%p\n",p2);//把p2的值按地址打印,p的是a地址
    printf("p  address:%p\n",&p);//变量p自己的地址
    printf("p2 address:%p\n",&p2);//变量p2自己的地址
    printf("%p\n",*p2);
   
    return 0;
}
5、
还有个挺好用的,如输出"0x123456"这个地址
C/C++ code
printf("%#x\n", 0x123456); // %#: 0x


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表