一.基本概念
1.以helloworld为例对写程序的思路提出如下要求:
1)头文件正确包含的重要性
2)以函数为单位来进行程序的编写
3)声明部分+实现部分
4)return 0;
5)多用空格空行
6)添加注释
2.算法 :解决问题的方法。(流程图,NS图,有限状态机FSM)
3.程序 :用某种语言实现算法
4.进程 :
5.防止写越界,防止内存泄漏,谁打开谁关闭,谁申请谁释放。
二.数据类型,运算符和表达式
1.数据类型:(基本数据类型)
C语言基本数据类型
1)所占字节数
2)存储区别
3)不同类型的数据间进行转换(隐式,显式->强制类型转换)
4)特殊性:
(1)布尔型bool
(2)float类型
(3)char类型是否有符号
(4)不同形式的0值:0,'0',“0”,'\0'
(5)数据类型与后续代码中所使用的输入输出要相匹配(防止自相矛盾)
2.常量与变量
常量:在程序执行过程中值不会发生变化的量
分类:整型常量,实型常量,字符常量,字符串常量,标识常量
整型常量:1,790,76,52
实型常量:3.14,5.26,1.999
字符常量:由单引号引起来的单个字符或转义字符,如'a','\n','\t','\015','x7f','\018':三位一般是表示8进制数,但'\018'不是,8不是8进制数,所以\0,1,8.
字符串常量:由双引号引起来的一个或多个字符组成的序列,如:“”(空串),"a","abXYZ","abc\n\021\018"
标识常量:#define,处理在程序的预处理阶段,占编译时间,特点:一改全改,缺点:不检查语法,只是单纯的宏体与宏名之间的替换。
变量:用来保存一些特定内容,在程序执行过程中值随时会发生变化的量。
定义:【存储类型】 数据类型 标识符 = 值
TYPE NAME = VALUE;
标识符:由字母,数字,下划线组成且不能以数字开头的一个标识序列。写标识符尽量做到见名生义。
数据类型:基本数据类型+构造类型
值:注意匹配
存储类型:auto static register extern(说明型)
auto:默认,自动分配空间,自动回收空间。
register:(建议型关键字)寄存器类型,只能定义局部变量,不能定义全局变量;大小有限制,只能定义32位大小的数据类型,如double就不可以;寄存器中没有地址,所以一个寄存器类型的变量无法打印出地址查看或使用。
static:静态型,自动初始化为0值或空值,并且其变量的值有继承性。另外,常用于修饰变量或函数。
extern:说明型,意味着不能改变被说明的变量的值或类型。
变量的生命周期和作用范围
1.全局变量和局部变量
2.局部变量和局部变量
3.运算符和表达式
表达式与语句的区别
运算符部分:
1)每个运算符所需要的参与运算的操作数个数
2)结合性
3)优先级
4)运算符的特殊用法 如:%要求两边必须是整型;=与==;逻辑运算符(||,&&)的短路特性
5)位运算的重要意义
将操作数中第n位置1,其他位不变:num = num | 1 << n;
将操作数中第n位清0,其他位不变:num = num & ~(1 << n);
测试第n位:if(num & 1 << n)
从一个指定宽度的数中取出其中的某几位:??