第一章:快速入门
1.数组参数是以引用(reference)形式进行传递的,也就是传址调用,而标量和常量则是按值(value)传递的。在函数中对标量参数的任何修改都会在函数返回时丢失,因此,被调用函数无法修改调用函数以传值形式传递给它的参数。然而,当被调用函数修改数组参数的其中一个元素时,调用函数所传递的数组就会被实际地修改
第二章:基本概念
1.标识符:变量、函数、类型等的名字。他们由大小写字母、数字和下划线组成,单不能以数字开头
2.C语言中注释不能嵌套
第三章:数据
1.C语言中仅有4种基本数据类型:整型/浮点型/指针和聚合类型(如数组和结构等)
整型:包括字符/短整型/整型和长整型,分为有符号和无符号两种
整型字面值
字面值是字面值常量的缩写:这是一种实体,指定了自身的值,并且不允许发生改变。它与普通的变量极为类似,区别在于当它被初始化以后,它的值就不能改变了
如果一个多字节字符常量的前面有一个L,它是宽字符常量
2.枚举类型
枚举:它的值为符号常量而不是字面值的类型
enum Jar_Type{CUP,PINT,QUART,HALF_GALLON,GALLON}
这条语句声明了一个类型,称为Jar_Type。这种类型的变量按下列方式声明:
enum Jar_Type milk_jug,gas_can,medicine_bottle;
如果某种特别的枚举类型的变量只使用一个声明,你可以把上面两条语句组合成下面的样子:
enum{CUP,PINT,QUART,HALF_GALLON,GALLON}
milk_jug,gas_can,medicine_bottle;
另:枚举类型的变量默认第一个是0,后面递增
//下面网站是枚举的一些补充:
[枚举的一些补充](http://c.biancheng.net/cpp/html/99.html)
3.浮点类型
包括了float/double/long double类型
头文件float.h定义了名字FLT_MAX/DBL_MAX/LDBL_MAX,分别表示float/double/long double所能储存的最大值,把max改成min表示能够存储的最小值
4.指针
变量的值存储于计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用,就像一条街道上的房子由他们的门牌号码标识一样。指针只是地址的另一个名字。指针变量就是一个其值为另外一个内存地址的变量。
指针常量
指针常量与非指针常量在本质上是不同的,因为编译器负责把变量赋值给计算机内存中的位置。把指针常量表达为数值字面值的形式几乎没有用处。
当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所储存的地址,而不是这些字符本身。不可以把字符串常量赋值给一个字符数组,因为字符串常量的直接值是一个指针,而不是这些字符本身。
5.typedef
C语言支持一种叫作typedef的机制,它允许你为各种数据类型定义新名字。typedef声明的写法和普通的声明基本相同,只是把typedef这个关键字出现在声明的前面
例:
typedef char *ptr_to_char;
这个声明把标识符ptr_to_char作为指向字符的指针类型的新名字。你可以像使用任何预定义名字一样在下面的声明中使用这个新名字
ptr_to_char a;
声明a是一个指向字符的指针
6.常量
(1)const
int const *cpi; 一个指向整型常量的指针。可以修改指针的值,但是不能修改它所指向的值
int * const cpi; 一个指向整型的常量指针。指针是常量,它的值无法修改,但可以修改它所指向的整形的值
int const * const cpi 无论是指针本身还是它所指向的值都是常量,不允许修改
(2)#define
#define MAX_ELEMENTS 50
第四章:语句
C最简单的语句就是空语句,它本身只包含一个分号。空语句本身并不执行任何任务,但有时还是有用。它所使用的场合就是语法要求出现一条完整 的语句,但并不需要它执行任何任务。