基于嵌入式printf()的基本用法

格式控制符

完整格式

1.% - x m . n 格式字符
2.有-表示左对齐,无表示右对齐
3.x表示空位需要填的字符
4.m表示最小域宽
5.n表示精度,一般用于实型小数点保留位数,按照四舍五入原则

格式字符

整型

%d格式,表示整型
%hd格式,表示短整型
%ld格式,表示长整型
%lld/l64d格式,表示64位整型
%u格式,表示无符号整型,其他长度同d格式
%o格式,表示无符号八进制整型,对于负数直接将补码看成正数转换
%x格式,表示无符号十六进制整型,x小写对应的十六进制为小写,x大写对应大写

实型

%f格式,表示小数形式单精度实型
%lf格式,表示小数形式双精度实型
%e格式,表示指数形式单精度实型;le同理
%g格式,系统自动选定f或e格式,使输出的宽度最小,且不输出无意义的0
PS:G/E格式表示的指数形式中E大写

字符型

%c格式,表示单个字符
%s格式,表示字符串

其他

%p格式,表示指针
%i格式,据说是以前的整型格式字符
%%格式,输出%

转义字符

\a:蜂鸣,响铃
\b:回退:向后退一格
\f:换页
\n:换行,光标到下行行首
\r:回车,光标到本行行首
\t:水平制表
\v:垂直制表
\\:反斜杠
\':单引号
\":双引号
\ddd:三位八进制
\xhh:二位十六进制
\0:空字符(NULL)

 
#include <stdio.h>

void test0()
{
    char c;
    char *pc;

    /*第一步 : 所有变量都保存在内存中,我们打印一下变量的存储地址*/
    printf("&c  =%p\n",&c);
    printf("&pc =%p\n",&pc);

    /*第二步:所有变量都可以保存某些值,接着赋值并打印*/
    c  = 'A';
    pc = &c;
    printf("c  =%c\n",c);
    printf("pc =%p\n",pc);

    /*第三步:使用指针:1)取值  2)移动指针*/
    printf("*pc =%c\n",*pc);    
    pc=pc+1;
    printf("*pc =%c\n",*pc);
    printf("//=================\n");    

    
}

void test1()
{
    
    char *pc;
    int  ia;
    int  *pi;

    /*第一步 : 所有变量都保存在内存中,我们打印一下变量的存储地址*/
    printf("&ia =%p\n",&ia);
    printf("&pi =%p\n",&pi);    
    printf("&pc =%p\n",&pc);        

    /*第二步:所有变量都可以保存某些值,接着赋值并打印*/    
    ia = 0x12345678;
    pi = &ia;
    pc = (char *)&ia;
    printf("ia =0x%x\n",ia);    
    printf("pi =%p\n",pi);        
    printf("pc =%p\n",pc);

    /*第三步:使用指针:1)取值  2)移动指针*/
    printf("*pi =0x%x\n",*pi);            
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc); pc=pc+1;
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc); pc=pc+1;
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc); pc=pc+1;
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc);    
    printf("//=================\n");
}

void test2()
{
    char ca[3]={'A','B','C'};
    char *pc;

    /*第一步 : 所有变量都保存在内存中,我们打印一下变量的存储地址*/
    printf("ca  =%p\n",ca);
    printf("&pc =%p\n",&pc);

    /*第二步:所有变量都可以保存某些值,接着赋值并打印*/
    //前面已经有ca[3]={'A','B','C'};
    pc = ca;
    printf("pc =%p\n",pc);

    /*第三步:使用指针:1)取值  2)移动指针*/
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc); pc=pc+1;
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc); pc=pc+1;
    printf("pc =%p\t",pc);    printf("*pc =0x%x\n",*pc);    
    printf("//=================\n");            
}

void test3()
{
    int ia[3]={0x12345678,0x87654321,0x13572468};
    int *pi;

    /*第一步 : 所有变量都保存在内存中,我们打印一下变量的存储地址*/
    printf("ia  =%p\n",ia);
    printf("&pi =%p\n",&pi);

    /*第二步:所有变量都可以保存某些值,接着赋值并打印*/
    //前面已经有ia[3]={0x12345678,0x87654321,0x13572468};
    pi = ia;
    printf("pi =%p\n",pi);

    /*第三步:使用指针:1)取值  2)移动指针*/
    printf("pi =%p\t",pi);    printf("*pi =0x%x\n",*pi); pi=pi+1;
    printf("pi =%p\t",pi);    printf("*pi =0x%x\n",*pi); pi=pi+1;
    printf("pi =%p\t",pi);    printf("*pi =0x%x\n",*pi);
    printf("//=================\n");    
}    


void test4()
{
     char *pc="abc";
    /*第一步 : 所有变量都保存在内存中,我们打印一下变量的存储地址*/
    printf("&pc =%p\n",&pc);

    /*第二步:所有变量都可以保存某些值,接着赋值并打印*/
    //前面已经有pc="abc";
    
    /*第三步:使用指针:1)取值  2)移动指针*/
    printf("pc    =%p\n", pc);    
    printf("*pc   =%c\n",*pc);
    printf("pc str=%s\n", pc);    

}    


int main(int argc,char **argv)
{
    printf("sizeof(char   )=%d\n",sizeof(char   ));
    printf("sizeof(int    )=%d\n",sizeof(int    ));
    printf("sizeof(char  *)=%d\n",sizeof(char  *));
    printf("sizeof(char **)=%d\n",sizeof(char **));    
    printf("//=================\n");
    //test0();
    //test1();
    test2();
    //test3();
    //test4();
    return 0;
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值