test
来源:互联网 发布:约翰威廉姆斯 知乎 编辑:程序博客网 时间:2024/05/22 13:11
序。
C语言是一门操作系统级的语言,C语言流行、应用的广泛,源自C语言可以直接对应出汇编代码,使得事情总是在被控制的范围。尤其操作系统底层,不二之选。
第一章 导言
概要介绍C语言的一些语法,毕竟再简单的程序段,也需要多个语法语句组合而成。本章节就是给出个大概,不详细阐述细节。
1.1 hello word
知识点:头文件、main函数、\n换行,一带而过,没什么好强调的。
unix系统下编译:cc hello.c
1.2 运算符
先声明后使用。
同时声明多个:int a,b,c;数据字节大小、数字类型范围,后续有详述。while运算,没什么好说的。
1.3 for循环
略
1.4 符号常量
#define 名字 替换文本,好记,有直观意义。在程序编译前,将代码中的名字替换成“替换文本”,“替换文本”可以是数字或其它字符。
1.5 输入输出
1.5.1 标准库输入输出,getchar(阻塞)、putchar函数使用。单个字符输入输出操作,用int装返回值目的是char可能装不下EOF,EOF当前测试的值为-1
1.5.2-1.5.4 常规运算,略
1.6 数组
简单数组运算,没有详细的数组解释
1.7 函数
介绍形参实参
1.8 传参
所有函数参数都是通过值传递的方式,将原参数复制到形参。指针复制的是地址。数组传递的是首元素的地址。
1.9 字符数组
字符数组后加\0,表示字符串的结束,%s识别\0结束
1.10 外部变量与作用域
局部变量也叫自动变量。
外部变量,用户函数间数据交换,所有函数都可以访问。
外部变量的定义与声明:
1、定义在所有函数体外,如 int i;
2、函数中如果有重名定义(再来一个int i;),则函数体中使用的是局部变量
3、如果在函数体内的定义前加extern(extern int i;),使用的是外部变量
4、当外部变量定义在函数使用前时,可以省略extern这一行的声明
5、一个变量只能定义一次,即分配内存空间,有时会伴有赋值,定义具有声明的功能。。一个变量可以可以声明多次,声明的作用是让某段代码认识这个变量,声明并不决定变量的声明周期
第一章总结
本章节介绍了C语言最基础的语法,相比其它语言,主要注意函数传参的值传递,外部变量等语言特性。
第二章 类型、运算符与表达式
2.2 数据类型及长度
char 1字节 (0-0xFF)
int 根据机器环境(2-4字节) 类型长度short <= int <= long
short 2字节
long 4字节
浮点型 float、double、long double 长度取决于具体实现
2.3 常量
123456789ul(UL) 表示unsigned long
1e-2表示值为0.01的浮点型,无后缀表示double类型 0.01f表示float型
字符表示:'a'等价于‘\x61’(16进制) 等价于 ‘\141’(8进制)
枚举,enum months {JAN=1,F=5,M,A=4}; 直接使用JAN 不需要months.JAN。未赋值时,从0还是顺序递增,赋值则按照已赋的值进行后续递增,这里M的值为6。枚举可以赋值字符,枚举变量名在一个作用域(同一个花括号内,非枚举定义本身花括号)内唯一。
2.4 声明
外部变量只会被初始化一次,在函数体中的仅为声明,不初始化(很多语言不存在声明顺序,可以全局使用,所以就没有了函数体中的声明)。外部变量和静态变量初始化默认为0,自动变量默认初始化为随机数,无意义。
2.7 类型转换
有符号a+b,浮点型,将向long double方向转换,char 和short 向int转换。无符号转换与不同机器实现有关。
int转char会丢失高位数据。
强制传唤(int)c,本质与默认转换相同,把c赋值给int类型的一个变量,使用该变量(int型)进行后续运算,c本身没有发生变化。
第二章总结:
了解基础的数据类型,基本的运算规则,声明与定义概念区分。
第三章 控制流
3.4 switch
用的比较少,复习一下。int和char类型在switch-case中的参数可以自动转换并匹配,case后如果不用break,程序将顺序往下执行。
第三章总结:
没啥好说的,都是常规的逻辑控制,各种语言都有的。
第四章 函数与程序结构
4.1 函数基本知识
省略的返回值类型默认为int
unix下编译多个源文件:cc main.c a.c b.c,若main.c中出现错误需要重新编译,则:cc main.c a.o b.o
4.2 返回非整型值的函数
若声明一个其它文件定义的函数,没有显示声明,则返回值会被视为int类型
return后的数据类型会被隐式转换成函数定义的返回值类型
- test
- test
- test
- test
- test
- test
- test
- Test
- test
- Test
- test
- test
- test
- test
- test
- test
- test
- Test
- python清空idle的内容
- 数组指针和指针数组
- Xcode9.1无线真机调试
- 对:同步与异步、阻塞与非阻塞的理解(通俗易懂)
- MongoDb学习笔记-2
- test
- C++ 函数中const的使用方法
- WPF获取DataGrid单元格和获取DataGrid行的方法
- 算法设计与分析作业(1)
- Tensorflow中的学习率递减函数
- 数据库中的连接操作
- js 动态增加数组
- 解决C#时间格式问题,不在受系统时间格式影响
- TensorFlow学习笔记3