C语言基础

.c文件的构成
预处理命令
头文件的包含
1. #include “”:先在工程路径下去查找,然后再去系统的环境变量下去查找
2. #include <>:在系统的环境变量下去查找

    宏定义
        格式 #define     宏名    要替换的东西
        eg:
            1. #define  Pi 3.14
            2. #define  Cmp(x, y)  { typedof(x) _x; typedof(y) _y; _x = x; _y = y; _x > _y ? _x : _y;}


    条件编译
        1. #if的使用
            #if 0/1  ....语句...  #else  ...语句... #endif

        2. #ifdef 和 #ifndef
            #ifdef/#ifndef  宏名  ....语句....  #endif 



声明语句
    变量声明
        内部变量声明
            数据类型 变量名 [= 初值];

        外部变量声明
            extern 数据类型 变量名;

        数据类型
            整型
                有符号
                    short(2字节)/int(4字节)/int long(4字节/32位,8字节/64位)/long long(8个字节/32位,8个字节/64位)
                    注意:int和short最少2个字节,并且short要少于或等于int

                无符号
                    unsinged + 有符号

                存储方式
                    以补码的形式存储,负数的补码的该数的绝对值取反加一或者说是(2^n + 负数)的补码


            浮点型 
                有符号
                    float(4字节),double(8个字节),long double(12个字节/32位,16个字节/64位)

                无符号
                    unsinged + 有符号

                存储方式
                    float
                        符号位(1)  指数位(8)  尾数部分(23)

                    double
                        符号位(1)  指数位(11)  尾数部分(52)

                    小数部分以补码形式存储:小数部分*2,在取整数部份,继续*2,直到结果为一
                        eg: 0.6875  ==》 0.6875*2   ==》0.3750 * 2 ==》0.75 * 2 ==》0.500 * 2 ==》1,所以小数部分存储补码为 1011

                    指数部分
                        次方-1 ==》指数部分的最高位存的是左移还是右移。左移为1,右移为0。



            字符型
                有符号
                    1个字节

                无符号
                    unsinged + 有符号

                存储方式
                    以ASCII码值存储在内部存储单元。48~57 ==》0~9  /  65~90 ==》A~Z  /  97~122  ==》a~z

                语法
                    char 变量名 = 'a' / 23 
                    char 变量名 = '\234' 八进制码值
                    char 变量名 = '\x00' 十六进制码值


            数组
                一维数组
                    定义
                        类型说明符 数组名[整型表达式] [= {初值列表}]; 整型表达式:指定数组中的元素个数。

                    引用
                        数组名[下标]

                    注意
                        一维数组数据类型为 类型说明符[整型表达式]。


                二维数组或者多维数组
                    定义
                        类型说明符  数组名[行数][列数];

                    引用
                        数组名[行下标][列下标]


                注意
                    C语言中只有一维数组,二维数组类型为类型说明符[列数][行数]。


            指针
                定义
                    指针变量也是一个变量,也保存数据,只不过指针变量是用来保存其他对象的地址的。

                语法
                    指向对象的类型说明符 *变量名[ = 指向对象地址]


            结构体
                语法
                    struct 自定义类型名{……成员1(数据类型 成员名)……};

                引用 结构体成员运算符(.)或者指向结构体成员运算符(->)
                    eg:s.num = 10;  (*S).num = 10;  S->num = 10; 

                初始化
                    1. 定义时按定义时的顺序一次初始化各成员变量,用逗号隔开。
                    2. 不按顺序,.成员变量名 = 值
                    3.结构体数组初始化


            共用体
                定义
                    共用体的存储空间是各成员之间共用的,同一时刻只能用一个成员变量,为了节省内存才提出共用体。

                语法
                    uion 公用体名{……成员列表(类型说明符 成员名;)……};

                扩展:电脑存储寄存器值方式
                    大端模式
                        存储器的低地址,存放寄存器的高字节;

                    小端模式
                        存储器的低地址,存放寄存器的低字节。



            枚举
                定义
                    把该类型变量所有可能的值一一列举出来。

                语法
                    enum 枚举名 {……成员列表……};

                注意
                    C语言在实现枚举时,枚举的具体的值,是用一个整数来表示的。可以给整数取名字,相对于名字没有对应值,从0开始,从左只有依次 + 1。


            空类型(void)
            字符串
                定义
                    C语言,是没有字符串的类型。C语言的字符串是通过char*(字符型指针)来实现的。

                语法
                    char*  变量名 = “字符串”;

                注意
                    C语言中的字符串都是保存在一个叫.rodata(只读数据)的内在区域,字符串代表这个内在空间的首地址。通过指针只能读,不能写。

                字符串处理函数
                    1. strlen
                    2. strcpy/strncpy
                    3. strcmp/strncmp
                    4. strcat/strncat



        变量名
            只能使用字母、数字和下划线,但只允许使用字母和下划线开头,并且要规避关键字。


    类型声明
        结构体声明
        共用体声明
        枚举声明

    函数声明
        函数头
            返回参数数据类型 函数名(形参列表);



函数
    main函数
        无形参
            int main(void)

        有形参
            int main(int argc, char *argv[] )这两个参数,一个是int类型,一个是字符串类型。
                第一个参数是命令行中的字符串数。
                第二个参数是一个指向字符串的指针数组。一般情况下,把程序本身的名字赋值给argv[0],接着,把后一个字符串赋给argv[1] 。



    自定义函数
        注意
            自定义函数在其他函数中调用,必须在其他函数之前声明或者定义。

.h文件的构成
声明语句
注意:struct类型声明作用域:本文件有效

格式
    #ifndef  __XX_H_  #define  __XX_H_    .......头文件内容........   #endif(防止头文件被重复包含)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值