C语言学习总结

C语言总结
 编程规范---格式(缩进,对齐,空行, 每一行代码),命名(见其名知其意)
 程序编译--编译工具gcc
   编译过程
   预处理 gcc -E main.c -o main.i
   编译   gcc -S main.i -o main.s
   汇编   gcc -c main.s -o main.o
   链接   gcc -o main main.o
   
 数据类型
  基本数据类型(char ,short, int, long ,float, double, bool ,unsigned-->unsigned int)--》合理利用内存
  数据类型空间大小
  数据类型转换:自动转换(低精度-->高精度), 强制转换(高精度-->低精度显示标明)
  变量,常量,
  标识符, 表达式, 语句
 运算符
  算数运算符
   +-*/  % ++ --  a++ ,++a
  关系运算符
   > ,< ,>=, <=, ==, !=
  逻辑运算符
   && || !
  位运算符
   & ,|, ~, ^, >> , << (进制互转)
 控制流
  for(表达式1;表达式2;表达式3), switch--case, if--else, continue, break, goto, while, do-while(); ,return
 
 数组指针函数
  数组:一维数组,二维数组
    
   数组定义
    数据类型 数组名[数组长度];
   数组名:数组首地址, 数组名不能自加自减
   数组下标:0---长度-1
   数组越界:向前越界,向后越界
   数组存储方式:一块连续的内存空间
  
  指针:指针就是地址
   int a = 10;
   指针变量:指针变量保存相对应类型的地址
   int *p = &a;
   
   int **q = &p;
      
   char a[10];
   char *p = a;
   
   sizeof(a) = ?10
   sizeof(p) = ?4
   指针变量大小:4
   
   指针加减运算
   指针与指针相加---无意
   指针与指针相减---相差多少个元素
   指针与数相加-----+数*指针类型大小 例子:int *p = 0x100, p+1 -》 0x104
   指针与数相减-----(-数*指针类型大小)
   
  函数
   函数定义:数据类型 函数名称(参数列表)
   形参,实参--形参是函数声明或定义时候用, 实参是函数调用时候用,实参是为了初始化形参
   函数调用---数据压栈和出栈过程
   传参-----值, 地址

   bool membuf(char **buf, int x)
   {
    char **buf = &p;
    *buf = (char *)malloc(x);
   }
   
   int main(void)
   {
    char *p = NULL;
    membuf(&p, 100);
    strcpy(p, "hello world");
   }
   
   函数声明
   函数实现
   
   函数递归  函数自己调用自己(必须要有使其返回的条件)
   
  
  
  数组指针  --本身指针,指向的是一个数组    int(*p)[3];
  指针数组  --本身是数组,数组中存储的是指针 int *p[3];
  指针函数  --
  函数指针  --本身是指针,指向是一个函数  int (*fun)(int);
  函数指针数组  --本身是数组,数组中存储的是指针,这个指针指向一个函数   int (*p[3])(int)
  
 自定义数据类型
  结构体struct ---定义,定义结构体对象和指针,初始化,结构体大小(结构体位域)
  共用体union --特点:多个成员共用一个空间(是以最大成员空间为共用体空间)
  枚举enum  --特点:enum day{mon, tus, }初始化
 
 内存
  auto, static, register, extern
  
  void fun(void)
  {
   static int a = 10;
   a = a+20;
   printf("%d\n", a);
  }
    
 宏定义
 
 

转载于:https://my.oschina.net/u/2400526/blog/478069

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值