C语言自我检测

C语言学习阶段性总结

学习小甲鱼C语言-以后会更新,适合于学习后自我检测,知识点汇总,有错误欢迎指正

https://github.com/happytaohaha/studyC/tree/master 分版本 所有例子,欢迎查看

1.预处理命令 (预编译阶段)
宏定义:定义一些写文用到的变量 而且出现较多次又不好修改 谨记 只是普通的字符替换
文件包含: 引入一些文件
条件编译: 只有在条件成立的条件下会执行这些代码

2.宏定义和typedef 的区别
宏定义:只是普通的字符替换 在预编译阶段
typedef: 真真正正声明一种类型 在编译阶段有效 typedef 取别名 简化复杂类型

3.各种基本类型 int char float double long unsigned int short int (各种类型所占的字节)
int (4字节 32位)
char (1字节 8位)
float (4字节 32位)
double (8字节 32位)
long (4字节 32位)
unsigned int (4字节 32位)
short int (2字节 16位)

4.指针 声明方式 int* a;
int b;
内部存储的是一个地址 a = & b;
*a 表示取值 这样这个int 就用上了 解析为int 的一个值
&b 表示取地址
而对于 a这个指针而言 它的地址就是 &a;

5.函数指针 函数指针就是指向函数的指针 int (* pointer)();
() 表示函数 int 是函数的返回值 并且(* pointer)必须加括号 才会表示是指针

6.函数参数的传递方式 值传递 地址传递 引用传递
值传递:等于在栈上重新分配空间进行计算 如果不反回就不会对实参造成影响
void print(int *a){ } //如果a本来就是一个指针 然后传入a 就是值传递
void print(int **a){ } //如果a本来就是一个指针 然后传入&a 就是地址传递
地址传递:将实参的地址传过来,对实参地址上的数进行修改等于修改实参,但是实参的地址没变
引用传递:就是实参的一个别名,别名就是对实参进行修改

7.数组 (数组指针 指针数组)
数组 char *a =“123456” 与 char a[] =“123456"的区别
内存的调用 char *a 的"123456” 直接放入了常量去 而 a 只是指向了第一个字符的一个地址 结束的话 “123456” 会自动加一个\0 结束
内存的调用 char a[] =“123456” 而会把 一个字符一个字符赋值到 数组里
数组指针:int (*a)[] 指向一个数组的指针 必须加()
指针数组:int * a[] 一维数组内部存放的都是指针

8.内存分区
堆: 用户自己分配,自己new delete malloc 和 free的, 增长方式由低向高增长
栈:系统管理控制的,里面的变量通常是局部变量、函数参数 增长方式由高向低增长
常量区: 文字常量 “123456”
全局/静态存储区: 存放全局变量和 静态变量的
代码区:存放二进制代码的

9.结构体 将一系列变量合为一体,当作一个变量
结构体所占内存的大小 是最长变量类型的整数倍 如double int char 和其他的一些类型 应该是8字节的倍数
结构体指针 指向结构体的指针
链表: 在处理head头指针的时候 注意参数传递的类型

10.文件的读写
注意读文件的类型 FILE *fp;
fp =fopen(“D:\a.txt”,“a”)

11.位运算
每一位进行运算 循环移位
可以代替 设中间变量 a = a ^ b; b = b ^ a; a = b ^ a;

12.void * p指针
这个指针只是指向一个地址 可以强转为其他类型 ,在内存分配时用
stu stu1 =(stu) malloc(sizeof(struct stu));
13.scanf的使用
scanf("%c %c\n", &a, &b); 注意空格 否者有可能会失败
14.git 的使用 gitignore
gitignore 如果在项目已经上传过一次 以后 需要忽略的已经有内存了需要先清理一下已经包含的 git rm -r --cached .idea

14.编译器clion的调试
需要更改配置,否则无法进行输入 调试需要调节模式 MINGW GDB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值