C语言总结的知识点


对编程的理解:对数据的操作

内容:
数据类型及对应的内容:
运算符:
程序结构:

修饰符:
函数
存储结构:
内存管理:

Gcc编译:

++++++++++++++++数据类型及对应内容++++++++++++++++
基本数据类型:原子数据类型是最小数据单元:

空类型:是所有数据类型的基础。

构造数据类型:在基本数据类型的基础上构造而成的复合数据类型。

==============
基本数据类型
==============
整型变量:
种类:short int ,int , long int
长度: 32位机:2 4 4 64位机:2 4 8
注意:在嵌入式系统中兼顾可移植性和效率:
将int的赋值范围控制在unsigned int和signed int的交集。

常量:
类型:用0和0x区分八进制和十六进制
注意:显示表达常量的数据类型
在末尾加L表示长整形常量
在末尾加U表示无符号常量
============
实型=浮点型
浮点型变量:
种类: float ,double ,long double
长度: 4 8 8
有效数字: 6 16 19

浮点型常量:
点分十进制:默认double类型
指数形式:尾数E指数
============
字符变量:
种类:char
长度:1
注意:存储字符对应的ASCII码的值

字符常量:

种类:形如单引号括起来一个字符
注意:特殊的字符常量,转义字符 \t \n \\ \'
=============
指针

指针常量:
地址常量:数组名
字符串常量:用字符串所在内存的首地址表示该字符串。
字符串数组:


指针变量:
定义:为每个内存单元进行编号,利用编号可以准确方便找到对应内存。
内存单元1字节,指针4字节。

注意:
int *p; *是int * 数据类型的一部分
int *p,q; 定义一个指针 p和一个整型变量 q;
*p; *指针解引用符;

二维指针 二维数组指针 二维指针数组
int **a: 指针指向的对象是一个一维指针,
int (*a)[3]: 是对应二维数组a[][3]数组名a的数据类型;
int *a[3]: 定义一个数组,存储对象的类型是int *;


野指针:指针变量随机指向一个内存单元;尽量将指针初始化为空
产生原因:
=============
枚举:


=============
空类型:
=============
void *
定义:数据类型不确定的指针变量,变量通过强制数据类型转换指向任意数据类型。

===============
构造数据类型
===============
数组:
定义:具有一定关系的若干个变量集合
种类:数值数组,字符数组,指针数组,结构体数组
格式:数据类型 数组名 数组长度
数组名:地址常量
数组长度:常量
注意:防止数组访问越界;
初始化:
不初始化:
局部数组不初始化,元素值不确定。
static数组不初始化,默认值零
全局变量不初始化,默认值零
初始化:
全部初始化:定义时初始化。int a[2]={1,2};
部分初始化:初始值比数组长度小,自动赋零。int a[2]={1};
赋值初始化:定义的时候无数组长度,int a[]={1,2};
初始化零:
直接赋值为零;int a[2]={0};

字符数组和字符串:
char a[]="asdfg";
数组长度:字符个数加一,默认添加\0
char *a="asdfg";
字符指针指向一个字符串常量;
常用的字符串处理函数函数:赋值:strcpy(),比较:strcmp(),求长:strlen()
================
结构体:
特点:①用户自行构造②由不同基本数据类型构成③定义时不分配空间,定义变量时才分配;
使用:
访问结构体变量的成员:
结构体变量名.成员名
结构体指针->成员名
=================
结构体和数组:
当形参分别是结构体和数组时:分别是值传递和地址传递;
=======

+++++++++++++++++++++++运算符+++++++++++++++++++++++++++++++++++++
原则:尽量使用括号,阅读更方便;
优先级:大略分:四大天王() [] -> .
单目
双目
例如:*p++和*++p;
*p++;访问p指向的对象,p后移一位;
*++p;访问p后移一位所指向的对象;
数据类型转换:对数据类型进行临时转变,并不改变本身类型;
自动:float-》double char short-》int
强制:(类型名)表达式

+++++++++++++++++++++++程序结构+++++++++++++++++++++++++++++++++++++
种类:顺序结构,分支结构,循环结构
分支结构:if switch
循环结构:while for

跳转语句:
break:跳出循环
continue:跳出本次循环;

猜你喜欢

转载自www.cnblogs.com/lanbofei/p/9882048.html