C语言基础

今天是学习嵌入式相关内容的第二天,我们开始进入到对C语言的学习。

在学习C语言之前,我们需要先来了解一些基础性知识。

C语言基础_第1张图片

1.进制转换:二进制、八进制、十进制、十六进制

    二进制:0 1
    八进制:0 1 2 3 4 5 6 7 
    十进制:0 1 2 3 4 5 6 7 8 9
    十六进制:0 1 2 3 4 5 6 7 8 9 a b c d e f 

    二进制、八进制、十六进制 -> 十进制 
        对应位 * 对应位的权值再求和

    十进制 -> 二进制、八进制、十六进制
        十进制数除以进制数得到的余数逆序排列

    二进制 八进制 十六进制:
    八进制1位对应二进制3位
    十六进制1位对应二进制4位

2.程序如何在C语言中被运行起来?
    程序(外存中)
    执行(加载到内存中)
    程序运行结束(回收内存空间)

3.数字在内存中的存储:
    正数在计算机中存放对应的二进制数
    负数在计算机中存放补码
        1.原码
        2.反码  
        3.补码
        4.内存数据

C语言基础_第2张图片

4.gcc编译的流程步骤:
    gcc filename.c 

    1.预处理:gcc -E filename.c -o filename.i 
        处理和#号相关代码

        1.头文件展开
        #include 
        2.宏定义替换
        #define  M    100  
        3.条件编译
        #if #elif #else #endif #ifndef #ifdef 

    2.编译: gcc -S filename.c -o filename.s 
        将C语言程序编译成汇编代码

    3.汇编:gcc -c filename.c -o filename.o 
        将汇编代码编译成二进制代码

    4.链接 : gcc filename.c -o filename 
        将多个二进制代码链接成为一个可执行程序

C语言基础_第3张图片


在此之后,我们正式进入到对C语言的学习

C语言基础_第4张图片

 1.数据类型分类
        1.基本数据类型:
            整形数据 short int long 
                    short (signed short)
                          unsigned short 
                    int   (signed int)
                          unsigned int 
                    long  (signed long)
                          unsigned long 

            浮点型数据 float double 
            字符型 char
            逻辑类型(泊尔类型) bool 
            缺省类型(void)
        
        2.构造数据类型:
            结构体
            共用体
            枚举类型

 2.基本数据类型
        1.整数类型:

 名称                                                 占内存空间              值域范围                 存储方式
 short: 短整形                                  2个字节空间         -32768 - 32767              补码
 unsigned short: 无符号短整型        2个字节空间              0 - 65535            对应的二进制数
 int:   整形                                        4个字节空间            -21亿 - 21亿                补码
 unsigned int:   无符号整形              4个字节空间              0 - 42亿              对应的二进制数
long:  长整型                                    8个字节空间            -2^63 - 2^63 -1           补码
 unsigned long:  无符号长整型         8个字节空间              0 - 2^64              对应的二进制数

  练习:
                编写程序测试数据类型所占字节数:
                    short   2
                    int     4
                    long    8
                    float   4
                    double  8
                    char    1
                    void    1

C语言基础_第5张图片

          %ld:占位符,输出控制符

         2.浮点数类型:

所有的浮点数类型均为有符号类型,没有无符号类型的概念

float   单精度浮点数类型(最多表示6-8位有效数字),4个字节                                                               1位符号位 + 8位指数位 + 23位尾数位

double   双精度浮点数类型(最多表示12-14位有效数字),8个字节                                                    1位符号位 + 11位指数位 + 52位尾数位

浮点数 -> 二进制形式 -> 科学计数法转换 -> 小数点后存入尾数位中 -> 指数位+偏移数(float:127 double:1023)以二进制形式存入指数位中 

C语言基础_第6张图片

C语言基础_第7张图片

          3.字符型:
            char 
            a .. z
            A .. Z 
            # ? .. 

            ASCII码表:
            字符和数字的对应关系

            a -> 97 

 名称                  内存空间大小       值域范围                                存储方式 
 unsigned char       1个字节            0 - 255             存储字符在ASCII码表中对应数字的二进制形式 
 signed char           1个字节            -128 - 127 

         4.逻辑类型:
            bool 

            名称                内存空间大小            值域范围        存储方式 
            泊尔类型 bool       1个字节                 true                    1
                                                                      false                    0

            在C语言中所有的非0值均为逻辑真值,0值为逻辑假值

          5.缺省类型:
            void ,搭配函数和指针使用

3.常量和变量:
        1.常量: 在程序运行过程中值不允许发生改变的量
        2.变量: 在程序运行过程中值可以发生改变的量
        3.表达式:由一个或者多个运算符连接的变量和常量组成的式子

     1.整型常量:
        默认为int类型

        100         int类型
        100l        long类型
        100u        unsigned int类型 
        100ul       unsigned long类型
        100L 
        100U 
        100UL 

        0123        八进制常量
        0x1a        十六进制常量

C语言基础_第8张图片

       2.整型变量:
           1.变量要先定义再使用
              变量定义的形式: 数据类型 变量名;

                1.变量名可以由字母、数字、下划线构成不能以数字开头
                2.变量名不能与C语言关键字重名
                3.变量名最好不要与库函数重名
                4.变量名最好是见名知意 
                    
                    驼峰法:
                    int TempNum;
                    int MaxCnt;
                    int MinNum;
                    int AvgScore;

                    内核法:
                    int temp_num;
                    int max_cnt;
                    int min_cnt;
                    int avg_score;

                 2.变量拥有存储空间,也有值域范围

     3. 浮点型常量:
        默认为double类型 

        3.1415          double类型
        3.1415f         float类型 
        3.1415e8
        3.1415e-8
        3.1415E8
        3.1414E-8 

C语言基础_第9张图片

     4. 浮点型变量:
        double d;
        float f;

     5.字符型常量:
        'a' 'A'
        '~' ' '
        '\'' : '号
        '\n' : 换行符
        '\t' : 横向制表符
        '\v' : 纵向制表符
        '\r' : 回车符
        '\b' : 退格符
        '\\' : \符
        '1'  : 字符1
        '\0' : 字符\0

        '1' -> ASCII码表 -> 49    

        '0'  : 48 
        0    : 0
        '\0' : ASCII码值为0 用来标识字符串的结尾

        '\123' : 八进制123对应的字符
        '\x32' : 十六进制32对应的字符  

C语言基础_第10张图片

 6.字符型变量:
        char ch;

C语言基础_第11张图片

C语言基础_第12张图片

    7.字符串常量

    8.标识常量

例题:C语言基础_第13张图片

C语言基础_第14张图片

3.7答案:

C语言基础_第15张图片

C语言基础_第16张图片

你可能感兴趣的:(c语言,开发语言)