printf参数归纳

%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的无符号十六进制整数 %%    打印一个百分号 --%p 用法 任何变量都有地址,变量名指向它的内容(指针的内容是地址或者非指针类型内容可能是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);return0;
}
问:如果想打印p指针本身的地址,如何弄?
答:printf("%p",&p);
问:p2=p是如何赋值的?
答:p的指针内容(里面存的是个地址)赋给p2。
问:p,p2存储的内容(地址)相同,它们两个的地址相同?
答:不同,可以通过打印他们的地址:printf("%p",&p); printf("%p",&p2); 来对比一下。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值