C Primer Plus学习笔记 前三章
C Primer Plus学习笔记
第一章
基本概念
- 编译器是把源代码翻译成计算机能理解的机器语言代码,程序员进行高级思维活动,而编译器则负责处理冗长乏味的细节工作。
- 编程的七个步骤:定义程序的目标/设计程序/编写代码/编译/运行程序/测试和调试程序/维护和修改程序。
- C编程的基本策略是用程序把源代码文件转换为可执行文件
- 连接器把编译器翻译好的源代码以及库代码和启动代码组合起来,生成一个可执行程序。
第二章
基本概念
- 如果程序结束时自动关闭窗口,一闪而过,在return语句前添加一行代码:getchar();使用户在按下一个键之后才会关闭窗口。
- #include<stdio.h> 告诉编译器把stdio.h中的内容包含在当前程序中,stdio.h提供键盘输入和屏幕输出。
- 注释提高程序的可读性,不会被编译器读取。
- C程序一定是从main()函数开始执行。
- 函数是C程序的基本模块。
- 花括号标记函数体的开始和结束。
- 所有变量都必须先声明才能使用。
- 编译器只能帮助检查语法错误,并不能帮助纠正语义错误。
- 定义语义错误的一种方法:在程序的关键点插入额外的printf()语句,以监视变量值的变化,找出错误。
声明:
int num; 其中int是关键字,表示一种数据类型,num是一个标识符,也就是一个变量、函数或者其他实体的名称。
关键字:
关键字不能作为标识符。关键字汇总见下表。
命名:
允许使用小写字母、大写字母、数字、下划线(_)来命名,其中第一个字符不能是数字,只能是下划线或字母。
printf()函数:
printf(“我是%d我的年龄是%d”,name,num) 参数中的%d相当于是一个占位符,起作用是指明输出num值的位置。待输出的变量列在双引号后面,还要注意,变量之间要用逗号隔开。
转义字符:
用于代表难以表示或者无法输入的字符。
转义字符 | 代表含义 |
---|---|
\b | Backspace键 |
\n | 代表Enter键 |
\t | Tab键 |
第三章
储备
- 在printf()中使用%f 来处理浮点值。%.2f中的 . 2用于精确控制输出,指定输出的浮点数只显示小数点后两位。
- sacnf()函数用于读取键盘的输入,scanf("%f",&weight)其中&表示找到weight变量的地点,把输入的值赋给变量weight。
- printf()和sacnf()两个函数用于实现人机交互。
变量(variable)与常量(constant):
常量编译器会根据用户书写形式来识别类型,如果是变量,则用户必须要在声明的时候指定其类型。
基本类型关键字:
除了常规类型,_Complex和_Imaginary分别表示复数和虚数。
位,字节,字
- 最小的存储单元是位(bit),可以存储0或1二进制数,也就是开或关。
- 字节(byte)1字节=8位 也就是说一个字节能存放2的8次方(256)种二进制数组合,所以可以表示0~255的整数或者一组字符。
- 字是计算机给定的自然存储单位
基本类型存储空间大小:
整数和浮点数的区别:
对于我们而言,整数和浮点数只是书写方式不同,但对于计算机而言,他们的区别是存储方式的不同。
1.整数没有小数部分,浮点数有小数部分。
2.浮点数可以表示的范围比整数大。
3.对于一些算术运算,浮点数损失的精度更多。
4.计算机的浮点数并不能表示区间内的所有值,通常只是实际值的近似值。
5.浮点数是以小数和指数两个方面存储。
赋值方法:
1.赋值号“=”
2.用scanf(),获取输入的同时复制给变量,注意&符号的使用。
3.初始化,在声明的时候直接赋值。单纯声明变量只是给变量创建内存空间。
八进制和十六进制:
由于是2的倍数,被广泛应用。用待定的前缀表示这种进制。0x的前缀表示16进制。0的前缀表示8进制。
使用不同的进制数是为了方便,并不会影响被存储的方式。在计算机内部都是以二进制的形式进行编码。
显示8进制和16进制的数:
%d :10进制
%o:8进制
%x:16进制
若要显示前缀
%#o 8进制
%#x 16进制
数据类型的前缀:
前缀 | 特点 | 适用对象 |
---|---|---|
short | 占用存储空间少 | 较小数值 |
long | 占用存储空间多 | 较大数值 |
long long | 占用存储空间更多 | 更大数值 |
unsigned | 无符号数(非负) | 更大的正数 |
整数溢出
char类型:
例:char math=‘A’ 用单引号括起来的单个字符被称为字符常量。
如果用双引号括起来,编译器会认为是一个字符串。
字符本质是按照ASCⅡ码以数值形式存储的。
转义字符:
Bool 型:
逻辑值 true of false对应布尔值的1或0
所以布尔型实际上也是一种整数类型,只占用一个字节的存储空间。
可移植类型:stdint.h和inttypes.h
新增的两个头文件以确保C语言的类型在各个系统中的功能相同。