C语言知识点大总结

来源:互联网 发布:老师与学生网络交流图 编辑:程序博客网 时间:2024/05/21 20:41

一、C语言基本常识:

            1. C语言由函数构成的

            2. main函数是程序的入口

           3. C语言中不能出现中文或中文字符(注释和字符串除外)

 

           关键字:C语言提供的表示特殊含义的单词

                特点:1. 全部小写2. Xcode中是紫褐色

 

           标识符:程序员自己在代码中为某些东西起的名字

                规则:1. 字母,数字,下划线组成

                     2.严格区分大小写

                     3.不能以数字开头

                     4.不能与关键字重名

                 规范:驼峰表示法

    

           注释:对代码的解释说明,它是程序员看的,不参与编译

                    单行注释多行注释

               多行注释可以嵌套单行注释,但多行注释不能嵌套多行注释

 

            数据:静态数据:存储在硬盘上的数据

                 动态数据:内存中的数据

 

            常量:不可改变的量

            变量:可以改变的量

 

    二、进制

            十进制

            二进制0b 0B

            八进制0

            十六进制 0x 0X  %x %X

 

        位运算:

            &  |  ^  ~  >>  <<

 

 

    三、数据类型

            1、基本数据类型

                int4字节 %d,%i

                float4字节  %f

                double8字节  %lf

                char1字节 %c

                枚举:枚举本质是整形(enum)

                    场合:当某个东西只有固定的几个取值的时候,使用枚举

                    特点:先定义枚举类型,根据枚举类型定义枚举变量

 

            2、构造类型

               数组:用来存放相同数据类型的多个数据的集合

                    定义:数据类型数据名称[元素个数];

                    遍历:把所有元素都输出看一下(循环)

    

               结构体:多个数据放在一起可以表示特定的含义,我们就把它们组成结构体

                    特点:要先定义结构体类型,再定义结构体变量(struct)

                   结构体与函数的关系:就如同基本数据类型和函数的关系

 

            3、指针

                指针就是地址

                指针变量:用来存储地址的变量

               1.指针只有初始化了才可以访问它所指向的存储空间

               2.如果一个指针没有初始化,它里面是垃圾值,称为野指针

                3指针不能直接赋值一个整形数

 

               基本数据类型的指针:指向基本数据类型的指针

                    格式:数据类型 *指针变量名称;

 

                结构体指针:指向结构类型的指针

                    格式:结构体类型 *指针变量名称;

                    1.访问其所指向的结构体成员的方式:

                        1): (*指针变量名称).成员名称

                        2):指针变量名称->成员名称

            

                数组指针:指向数组的指针

                    格式:所指向的数组的数据类型 (*指针变量名)[所指向的数组的元素个数];

                    1.这种指针与二维数组名是等价的

    

                函数指针:指向函数的指针

                    格式:所指向的函数的返回值类型 (*指针变量名)(所指向的函数的形参列表...)

                    1.通过函数指针调用函数

                        1): (*指针变量名称)(实参列表)

                        2):指针变量名称(实参列表)

 

            4、运算符

                1.算术运算符

                    + - * / %

 

                2.赋值运算符(除逗号运算符,优先级最低的运算符)

                    = += -= *= /= %=

 

                3.自增自减运算符

                    ++a; 先加1,再运算

                    a++; 先运算,再加1

 

                4.sizeof运算符:用来计算变量,常量,数据类型所占用的存储空间的字节数

                    1.sizeof(常量)sizeof 常量

                    2.sizeof(变量)sizeof 变量

                    3.sizeof(数据类型)

 

                5.逗号运算符(优先级最低)

                    1.运算顺序:从左到右   

                    2.逗号表达式的运算结果为最后一个表达式的值

 

                6.关系运算符(比较运算符)

                    == != > < >= <=

                    算术运算符 >关系运算符优先级 >赋值运算符 

 

                7.逻辑运算符(优先级高的优先结合)

                    && || !

                

                8.三目运算符

                    条件表达式 ?结果1 :结果2

 

                优先级:一般优先级越高,越先进行运算

               结合方向:当优先级相同的时候,计算方向(从左往右,从右往左)

 

    四、流程控制

            控制程序的执行流程

            1.顺序结构:按照从上往下的顺序执行

 

           2.分支结构:分支结构相当于岔路口,当条件满足的时候就执行某段代码

                if语句:

                    1.if语句必须以if开头

                    2.if可以有多个elseif

                    3.if语句只有一个else

                    4.if语句中最多只有一个代码块会被执行

                    5.如果有else那么必然有一个代码块会被执行

 

               switch语句:当变量与某个常量相等的时候,就执行这个常量所对应的代码块中的语句

                    格式

                        switch(变量){

                            case常量:

                            ...

                            break;

 

                            case常量:

                            ...

                            break;

 

                            default:

                            ...

                            break;

                        }

                    注意点

                        1.仅仅支持整形数(int,char,enum)

                        2.case 后面只能是常量常量表达式

                        3.case 后面的常量值不能相同

                        4.结束条件:

                                遇到breal;

                                运行到switch中的"}"

 

           3.循环结构:当条件满足就会一直循环执行循环体中的代码,直到条件不再满足

                1.while 语句:当条件满足的时候就指向while后面大括号中的语句

                2.do while语句:循环体中的代码至少执行一次

                3.for语句;

                        for(初始化表达式;条件表达式;循环后操作表达式){

                                语句;

                                ...

                    }

 

 

                break;  

                    1.用在switch语句中用来结束switch语句

                    2.用在循环结构中,用来结束当前的循环语句

 

                continue;

                    1.只能用再循环结构中,跳过本次循环体中continue后面的语句,进行下一个条件判断

 

 

    五、函数

        完成特定功能的代码段

        1.格式:

            返回值类型 函数名称(形参列表){

                语句:

                ...

            }

 

        2.函数声明:告诉编译器该函数已经存在了

                    函数的声明可以有多个,但函数的定义只能由一个

 

        3.函数参数:

           1.基本数据类型作为函数参数传递是值传递

            2.数组作为函数参数传递是地址传递

            3.指针作为函数参数传递是地址传递

           4.结构体作为函数参数传递和基本数据类型一致

 

        4.函数返回值:函数完成功能后要返回给主调函数中的数据

           1.返回值的类型必须与返回的值得类型一致

            2.一个函数只能有一个返回值

        

        5.return 作用

            1.返回值给主调函数

            2.结束函数

 

 

    六、预处理指令:在编译之前需要进行解析处理的指令

        1.宏定义: #define宏名

           1.不带参数的宏定义:在编译之前,使用宏名后面的值,替换代码中所有出现宏名标识的地方

           2.带参数的宏定义:把参数代入宏名后面的表达式中,然后替换宏调用的地方

        

        2.条件编译:在编译的时候,当条件满足的时候就编译某段代码

            #if 开头   #elif    #else     #endif结尾

            #ifdef    #endif

            #ifndef   #endif

 

        3.文件包含:

            #include 拷贝所包含的文件内容到#include指令所在的位置

            include <>  包含系统的头文件

            include "" 包含自己写的文件