C Primer Plus学习笔记 前三章

C Primer Plus学习笔记

第一章

基本概念

  • 编译器是把源代码翻译成计算机能理解的机器语言代码,程序员进行高级思维活动,而编译器则负责处理冗长乏味的细节工作。
  • 编程的七个步骤:定义程序的目标/设计程序/编写代码/编译/运行程序/测试和调试程序/维护和修改程序。
  • C编程的基本策略是用程序把源代码文件转换为可执行文件
  • 连接器把编译器翻译好的源代码以及库代码和启动代码组合起来,生成一个可执行程序。

第二章

基本概念

  • 如果程序结束时自动关闭窗口,一闪而过,在return语句前添加一行代码:getchar();使用户在按下一个键之后才会关闭窗口。
  • #include<stdio.h> 告诉编译器把stdio.h中的内容包含在当前程序中,stdio.h提供键盘输入和屏幕输出。
  • 注释提高程序的可读性,不会被编译器读取。
  • C程序一定是从main()函数开始执行。
  • 函数是C程序的基本模块
  • 花括号标记函数体的开始和结束
  • 所有变量都必须先声明才能使用
  • 编译器只能帮助检查语法错误,并不能帮助纠正语义错误。
  • 定义语义错误的一种方法:在程序的关键点插入额外的printf()语句,以监视变量值的变化,找出错误。

声明

int num; 其中int是关键字,表示一种数据类型,num是一个标识符,也就是一个变量、函数或者其他实体的名称。

关键字

关键字不能作为标识符。关键字汇总见下表。C Primer Plus学习笔记 前三章

命名

允许使用小写字母、大写字母、数字、下划线(_)来命名,其中第一个字符不能是数字,只能是下划线或字母。

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):

常量编译器会根据用户书写形式来识别类型,如果是变量,则用户必须要在声明的时候指定其类型。

基本类型关键字:

C Primer Plus学习笔记 前三章
除了常规类型,_Complex和_Imaginary分别表示复数和虚数。

位,字节,字

  • 最小的存储单元是位(bit),可以存储0或1二进制数,也就是开或关。
  • 字节(byte)1字节=8位 也就是说一个字节能存放2的8次方(256)种二进制数组合,所以可以表示0~255的整数或者一组字符。
  • 字是计算机给定的自然存储单位

基本类型存储空间大小:

C Primer Plus学习笔记 前三章

整数和浮点数的区别:

对于我们而言,整数和浮点数只是书写方式不同,但对于计算机而言,他们的区别是存储方式的不同。
C Primer Plus学习笔记 前三章

1.整数没有小数部分,浮点数有小数部分。
2.浮点数可以表示的范围比整数大。
3.对于一些算术运算,浮点数损失的精度更多。
4.计算机的浮点数并不能表示区间内的所有值,通常只是实际值的近似值。
5.浮点数是以小数和指数两个方面存储。
C Primer Plus学习笔记 前三章
赋值方法:
1.赋值号“=”
2.用scanf(),获取输入的同时复制给变量,注意&符号的使用。
3.初始化,在声明的时候直接赋值。单纯声明变量只是给变量创建内存空间。
C Primer Plus学习笔记 前三章

八进制和十六进制:

由于是2的倍数,被广泛应用。用待定的前缀表示这种进制。0x的前缀表示16进制。0的前缀表示8进制。
使用不同的进制数是为了方便,并不会影响被存储的方式。在计算机内部都是以二进制的形式进行编码。
显示8进制和16进制的数
%d :10进制
%o:8进制
%x:16进制
若要显示前缀
%#o 8进制
%#x 16进制

数据类型的前缀:

前缀 特点 适用对象
short 占用存储空间少 较小数值
long 占用存储空间多 较大数值
long long 占用存储空间更多 更大数值
unsigned 无符号数(非负) 更大的正数

整数溢出

C Primer Plus学习笔记 前三章

char类型:

例:char math=‘A’ 用单引号括起来的单个字符被称为字符常量。
如果用双引号括起来,编译器会认为是一个字符串。
字符本质是按照ASCⅡ码以数值形式存储的。

转义字符:

C Primer Plus学习笔记 前三章

Bool 型:

逻辑值 true of false对应布尔值的1或0
所以布尔型实际上也是一种整数类型,只占用一个字节的存储空间。

可移植类型:stdint.h和inttypes.h

新增的两个头文件以确保C语言的类型在各个系统中的功能相同。