条件编译
在满足一定的条件下进行编译
-
#ifdef(标识符)
程序段1
#else(可以忽略) (elif)
程序段2
#endif(必要)
注:以#开头的都是预编译指令 -
#ifndef(标识符)
程序段1
#else(可以忽略) (elif)
程序段2
#endif(必要) -
#if(常量表达式)
程序段1
#else(可以忽略) (elif)
程序段2
#endif(必要)
使用用例:
如果我们的程序在多个文件中引入#include<stdio.h>,不会被多次引入,我们进入该头文件,可以看到前面的几行代码:
#ifndef _STDIO_H_
#define _STDIO_H_
注:这两行的意思是,如果没有宏_STDIO_H,那么他就会使用#define定义这个宏,如果宏定义了那么就不会重复引入头文件中的内容了
类型转换
- 隐式转换:不同类型数据间混合运算,如果两个数据类型不同,如果你不进行强制转换,比如float和double,他们进行运算,结果就是float会自动转化为double,如果是int和float与double运算,那么int就会转换成float或double进行运算,字符型与整形数据进行运算,会用字符的ASCII码值进行计算,这些都是系统自动转换而成的。
- 强制转换:我们可以在知道是什么数据类型进行运算的情况下,为了防止出现数据丢失,我们可以自行对数据进行强制类型转换,这样我们就能得到我们预期的结果。
#include<stdio.h>
int main()
{
char a = '10';
int b;
b = (int)a;
printf("%d",b);
return 0;
}
数组
在C语言中,声明数组必须指定元素的类型和元素的数量,数组的大小必须是一个大于0的整数,类型是C语言的有效数据类型。
数组初始化
int array[5] = {0,1,2,3,4};
注:如果我们后面的大括号内写了数值,[]内可以省略,数组会根据我们初始化的数值自动指定数组的大小。
将数组所有元素都初始化为0:
int array[5] = {0};