第二节:格式化IO函数解释:

本文详细介绍了C语言中的格式化输入输出函数,包括printf、scanf、sscanf的使用,以及各种运算符的解析,如关系运算、逻辑运算、位运算、三目运算和逗号表达式。同时,还讲解了sizeof运算符用于测量内存大小的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,格式化IO的函数:

都会有存在IO缓冲区(printf和scanf的输入输出都需要经过IO缓冲区) 

printf:
#include <stdio.h>
int printf(const char *format, ...);

1,printf这个函数是一个变参函数(指的是参数个数不固定),
后面的参数个数及格式由前面的format这个字符串格式去指定;
2,printf这个函数并不会马上将内容打印出来,
而是需要遇到以下这些场景才能将输出:
    A,printf的输出内容填满了IO缓冲区
    B,遇到换行符"\n"
    C,程序正常退出(main函数结束的时候)

3, printf这个函数由于是个变参函数,他在内部调用参数值的时候是从后到前调用的
    而且printf函数调用的时候很容易被优化

4,printf中format里面的各个格式
    %d:打印十进制有符号int
    %hd: short
    %hhd: char的数字
    %u:unsigned int
    %o: 打印八进制数
    %x: 打印十六进制
    %ld: long int
    %lld or %Ld : long long int
    %lu: unsigned long int
    %c: char
    %s: 字符串
    %f: float
    %lf: double
    %Lf:long double
    %.3f:打印小数点后三位
    %p :打印指针的地址
    %e:科学技术法打印  
    %%:打印%

二,格式化输出函数

    sprintf:组合字符串往指定的内存输出:
    int sprintf(char *str, const char *format, ...);

    str:指定的内存(以后打印的内存将会存放到这片内存中)
    format:参照printf函数
    ...:参照printf函数

    snprintf:组合指定大小的字符串
    int snprintf(char *str, size_t size, const char *format, ...);

    str:指定的内存
    size:指定多大(包含'\0')
    format等参照printf函数

三,scanf:

#include <stdio.h>
int scanf(const char *format, ...);

1,后面的参数必须得是前面format指定的格式的内存的地址
2, scanf的返回值代表成功获取到多少个数据
3, 如果获取失败,这个异常的数据将会一直存在在IO缓冲区中
4,这个函数会阻塞

四,sscanf:

从指定的内存当中获取数据
int sscanf(const char *str, const char *format, ...);

str:指定的内存
format:参照scanf

五,运算符

算数运算:
    +, - , *, /, %, --, ++

    1, -:可以当做一目取负(负负得正)
    2,a++,++a的区别:
        a++经过两个步骤
            a先拿来用,用完之后再加1
        ++a则是a先加1,然后再拿这个值来用

六,关系运算:

    >,< >=, <= !=, ==
    这些关系运算一般作用于条件判断当中,如果符合则是返回真(1),
    如果不符合,则是返回假(0)

七,逻辑运算:

    !:逻辑取非,假变成真,真变成假
    &&:并且,要求两个条件都为真则是真,
        只要有一个条件是假则下面的判断都不会再执行,直接返回假 
    ||:或者,要求两个条件中只要有一个为真,则立即返回真,不会再往下面判断

八,位运算:

    &:位运算的与操作
    |:位运算的或操作
    ~:位运算的取反操作
    ^:位异或,相同得0,不同得1
    >>:右移
    <<:左移

&a:取地址操作
a&&b:逻辑判断,两个条件都得为真才能返回真
a&b:位运算(通过二进制的与得出运算结果)      

九,三目运算:

    条件 ?  为真的返回值 : 为假的返回值;

十,逗号表达式:

    指的是在单个语句当中允许用逗号隔开来,进行多个语句从左到右的运算,
    其中最后的这整条表达式的返回值是逗号表达式当中最后的那个值决定

十一,sizeof:测量指定内容的大小(以字节为单位)

    sizeof(a);      //4
    sizeof(array);  //10
    sizeof("hello");//6
    sizeof(int);    //4
    sizeof(p);      //侧量指针的时候返回的只是指针变量的大小
                    (就是系统的位数)
                    (不会进去这个地址里面去侧量里面的内容的大小)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值