c++ printf参数练习

#include 
using namespace std;
/**
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%o 无符号以八进制表示的整数
%g 把输出的值按照%e或者%f类型中输出长度较小的方式输出
%p 输出地址符
%lu 32位无符号整数
%llu 64位无符号整数
*/
int main(int argv,char* argc[])
{
	int m=11;
	int *pn;
	pn=(int *)malloc(sizeof(int));
	pn=&m;
	printf("%4d   \n",m);
	printf("%x   \n",&m);
	printf("0x%p   \n",&m);
	printf("0x%p   \n",*pn);
	printf("%d   \n",*pn);
	char c,s[20],*p;
	int a=1234,*i;
	float f=3.141592653589f;
	double x=0.12345678987654321;

	p=(char*)malloc(sizeof(char));
	p="Howdoyoudo";
	strcpy(s,"Hello,Comrade");
	i=(int *)malloc(sizeof(int));
	*i=12;
	c='\x41';
	printf("a=%d\n",a);/*结果输出十进制整数a=1234*/
	printf("a=%6d\n",a);/*结果输出6位十进制数a=1234*/
	printf("a=%06d\n",a);/*结果输出6位十进制数a=001234*/
	printf("a=%2d\n",a);/*a超过2位,按实际值输出a=1234*/
	printf("*i=%4d\n",*i);/*输出4位十进制整数*i=12*/
	printf("*i=%-4d\n",*i);/*输出左对齐4位十进制整数*i=12*/
	printf("i=%p\n",i);/*输出地址i=06E4*/
	printf("f=%f\n",f);/*输出浮点数f=3.141593*/
	printf("f=%6.4f\n",f);/*输出6位其中小数点后4位的浮点数
						  f=3.1416*/
	printf("x=%lf\n",x);/*输出长浮点数x=0.123457*/
	printf("x=%18.16lf\n",x);/*输出18位其中小数点后16位的长浮点
							 数x=0.1234567898765432*/
	printf("c=%c\n",c);/*输出字符c=A*/
	printf("c=%x\n",c);/*输出字符的ASCII码值c=41*/
	printf("s[]=%s\n",s);/*输出数组字符串s[]=Hello,Comrade*/
	printf("s[]=%6.9s\n",s);/*输出最多9个字符的字符串s[]=Hello,
							Co*/
	printf("s=%p\n",s);/*输出数组字符串首字符地址s=FFBE*/
	printf("*p=%s\n",p);/*输出指针字符串p=Howdoyoudo*/
	printf("p=%p\n",p);/*输出指针的值p=0194*/
	
	i=NULL;
	p=NULL; 
	pn=NULL;
	free(i);
	free(p); //p指针的地址改动过,指向了其他的有效地址,要先P=NULL才可以释放。
	free(pn);//pn指针的地址改动过,指向了其他的有效地址,要先Pn=NULL才可以释放。fuck
	i=NULL;
	p=NULL; 
	pn=NULL;
	system("pause");
	return 0;
}

你可能感兴趣的:(c/c++)