该文章是我第一次学习C语言是没注意到的点,通过文章进行复盘,旨在加深对知识的理解,内容比较散碎,但也可能是大部分人学习时没注意到的点。
1.c语言中的常量
const修饰的常变量:const本质还是个变量,但是在语法层面上const修饰的变量具有常属性,不能修改。
#define定义的标识符常量:如果我们需要一个常量表示某种意思,使用#define
枚举常量:枚举——一一列举
如生活中的一些值:性别,血型等
枚举的关键字:enum
将鼠标拖到列举的值上时,可以看到值,这个值不能修改,是一个常量。
2. 字符串:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
打印可以看到,有\0才会结束。
3.转义字符:\ddd 表示1~3个8进制字符,如\130转换成10进制是88,表示字符X。\xdd,x代表16进制,dd表示2个十六进制数字。 如: \x30转换成10进制是48,表示0。
4.scanf函数返回的数读取到的数据个数。
5.~操作符:对一个数的二进制按位取反。
6.逗号表达式是从左向右依次计算的,逗号表达式的结果是最后一个表达式的结果。
7.常见的关键字:
auto:局部变量本身前面都有auto,但是局部变量进入作用域创建,出了作用域销毁,自动创建,自动销毁,所以就省略掉了。
const:修饰类型,常属性类型。
default:默认
enum:自定义类型
extern:如果我们需要在不同的源文件中共享变量或函数,可以使用extern关键字来声明变量或函数。
register:如果一个变量用register来修饰,则意味着该变量会作为一个寄存器变量,让该变量的访问速度达到最快。例如,一个程序逻辑中有一个很大的循环,循环中有几个变量要频繁进行操作,这些变量可以声明为register类型。不能对寄存器变量使用取地址符“&”,因为该变量没有内存地址。
signed:有符号数
unsigned:无符号数
static:1. 修饰局部变量-静态局部变量 2. 修饰全局变量-静态全局变量 3. 修饰函数-静态函数,static修饰的局部变量存储位置改变了,局部变量是存储在栈区内,而静态变量则是存储在静态区内。而这种改变带来的影响就是使得局部变量的生命周期变得和整个程序一样长。
static修饰的局部变量存储位置改变了,局部变量是存储在栈区内,而静态变量则是存储在静态区内。而这种改变带来的影响就是使得局部变量的生命周期变得和整个程序一样长。
一个全局变量被static修饰,使得这个全局变量只能在本源文件内使用, 不能在其他源文件内使用。
typedef:类型重定义
#define 定义宏:
ADD是宏的名字,x,y是宏的参数,后边是宏的实现体。