c++基础
无符号整数 unsigned
unsigned char的范围从0开始,至少到255
unsigned int的范围从0开始,至少到65535
unsigned short的范围从0开始,至少到65535
unsigned long的范围从0开始,至少到4294967295
常量const关键字
const int age = 38;
另外一种常量的定义方式,不需要添加类型,也不需要使用=符号,并且可以省略末尾的;
#define NAME “jack”
sizeof运算符返回,你传入的操作数的大小,也可以传入变量,甚至是类型也可以
字符串,这里Flavio只有6个字符,却用了一个数组长度是7的字符串数组,是因为字符串最后一个字符必须是0,它是字符串的终止符号,我们必须给它留个位置
char name[7] = “Flavio”;
printf(“\nname=%s”,name);
指针
指针是某个内存块的地址,这个内存块包含一个变量
结构体
利用struct关键字,我们可以使用基本的c类型创建复杂的数据结构,结构体的语法
struct {
// 变量…
}
预处理器
当我们用C编程时,它对我们有很大的帮助,它是C标准的一部分,就像语言本身,编译器和标准库一样
它解析我们的程序,确保编译器在处理之前获得所有需要的东西
在实践中,它是做什么的呢?
例如,它查找你使用#include指令包含的所有头文件
它还查看你使用#define定义的每个常量并将其替换为实际的值
这只是一个开始,我提到了这两个操作,是因为它们是最常见的两个,预处理器能做的事情还有很多
你有注意到#include和#define在开头有一个#吗?那在预处理器指令中是很常见的,如果某一行以
#开始,它就会被预处理器关照
条件
const int DEBUG=0;
int main(void) {
#if DEBUG == 0
printf(“我不是debug”)
#else
printf(“我是debug”)
#endif
}
符号常量
#define VALUE 1
#define PI 3.14
#define NAME “Flavio”
宏
我们还可以使用#define定义宏,宏与符号常量之间的差别在于
宏可以接受一个参数,并且通常包含代码,而符号常量只是一个值: