标准C语言
2021-04-23 14:26
                         标签:格式   浮点数   逻辑运算符   std   赋值运算符   算法   特殊字符   自动类型转换   没有        浮点: 二、变量与常量     变量的输入、输出:         int scanf(const char *format, ...);     练习1:定义各类型的变量并初始化,使用printf显示。     类型占位符:C语言通过占位方式来传递变量的类型。     什么是常量:程序运行期间数值不能变化的叫常量 四、运算符     三目运算符:运算对象有三个部分     赋值运算符:+= *= /= ...     位运算符:& | ~ ^ >> 
 五、类型转换 六、分支语句     if(表达式)//双分支     if(表达式1)//多分支 标准C语言 标签:格式   浮点数   逻辑运算符   std   赋值运算符   算法   特殊字符   自动类型转换   没有    原文地址:https://www.cnblogs.com/Nxet/p/13270024.html
一、数据类型
    为什么对数据进行分类:节约存储空间,提高运行速度。
    整型:
        signed
            signed char         1       -128~127
            signed short        2       -32678~32767
            signed int          4       正负20亿
            signed long         4/8     正负20亿/9开头19位整数
            signed long long    8       9开头19位整数
            注意:signed 不加就代码
        unsigned:
            unsigned char       1       0~255
            unsigned short      2       0~65535
            unsigned int        4       0~40亿
            unsigned long       4/8     0~40亿/1开头20位整数
            unsigned long long  8       1开头20位整数
            注意:由于定义无符数据时比较麻烦,标准库把这些无符类型重新定义成了以下类型
                需要包含头文件 stdint.h
                uint8_t、uint16_t、uint32_t、uint64_t
                int8_t、int16_t、int32_t、int64_t
        float           4
        double          8
        long double     12/16
        注意:采用科学计算法,二进制与真实数据之间需要翻译,因此计算整数要比整型要慢。
        小数点后六位有效。
    模拟:
        char 字符其实就是符号或图案,在内存中存储的是整数,需要显示时会根据ASCII表中的对应关系显示出相应的符号或图案。
            ‘\0‘ 0 特殊字符,字符串的结束标志。
            ‘0‘ 48 
            ‘A‘ 65
            ‘a‘ 97
        bool 布尔 先有了C语言之后才有 bool 类型,所有C语言不可能有真正布尔类型,stdbool.h头文件对布尔类型做的模拟。
            bool true false
    可以使用sizeof计算类型的字节数。
    什么是变量:程序运行期间数值可以变化的叫变量,相当于存储数据的盒子。
    定义:类型 变量名;
        int num;
        取名规则:
            1、由字母、数字、下划线组成
            2、不能以数字开头
            3、不能与关键字重名,能默写。
            4、见名知义(功能、类型、范围)
            printf scanf bool
        注意:变量的默认值是随机,为了安全要给初始化,一般初始化为0。
    使用:
        赋值:num = 10;
        参与运算:num * 100;
        int printf(const char *format, ...);
        功能:输出数据
        format:双引号包含的格式信息(提示信息+占位符)
        ...:变量列表
        返回值:输出字符个数
        功能:输入数据
        format:双引号包含的格式信息(占位符)
        ...:变量地址列表
        返回值:成功输入变量的个数
        注意:scanf需要的是变量类型和变量地址,变量地址=&变量名
    练习2:定义各类型的变量并初始化为0,使用scanf输入,printf显示。
        %hhu %hu %u %lu %llu
        %hhd %hd %d %ld %lld
        %f %lf %LF
        100 默认int
        100l long
        100ll long long
        100u unsigned int
        100lu unsigned long
        100llu unsigned long long
        3.14 默认double类型
        3.14f float
        3.14l long double
三、格式化输入输出
    %nd 显示n个字符宽度,不够则补空格,右对齐
    %-nd 显示n个字符宽度,不够则补空格,左对齐
    %0nd 显示n个字符宽度,不够则补0
    %n.mf 显示n个字符宽度(小数点算一位),不够则补空格,m表示小数点后的位数(四舍五入)
    %g 不显示小数点后多余的0
    自变运算符:++/-- 使变量的值自动加1或减1  
        前自变:立即有效
        后自变:下一条语句才有效
        注意:不要一行代码中多次使用自变运算符;
    算术运算符:+ - * / %
        整数/整数结果没有小数点。
        / % 除数不能为零,否则会产生浮点数例外,核心转储。
    关系运算符:> =         比较的结果是 0 或 1 比较结果还能继续参与运算。
        10     逻辑运算符:&& || !
        会先把运算对象转换逻辑值,0转换成假,非0转换为真。
        A && B 一假即假
        A || B 一真即真
        !A  求反
        && || 具有短路特性,当左边的值可以确定表达式结果,右边不同计算。
        A?B:C;  判断A的值如果为真执行B,如果为假执行C。
        该语句不能使用流程控制语句,因为它必须要有运算结果。
        a += b; a = a+b;
        a *= b; a = a*b;
    自动类型转换:
    只有相同类型的数据才能进行运算,不同类型数据转换成相同类型再进行云计算。
    转换规则(以不丢失数据为基础,适当牺牲一些空间):
        1、字少的向字节多的转。
        2、有符号向无符号转。
        3、整型向浮点型转。
    强制类型转换:
        (类型)数据 有丢失数据的风险,慎重使用。
    if(表达式)//单分支
    {
        表达式值为真,执行此处代码。
    }
    {
        表达式值为真,执行此处代码。
    }
    else
    {
        表达式值为假,执行此处代码。
    }
    {
        表达式1值为真,执行此处代码。
    }
    else if(表达式2)
    {
        表达式2值为真,执行此处代码。
    }   
    else
    {
        表达式1和2都为假,执行此处代码。
    }
下一篇:背包算法java版