条件编译
在需求程序在某种情况下进行时可以进行条件编译。
三种形式:
1.#ifdef 标识符
程序段1
#else
程序段2
#endif
标识符为宏名,该宏名可以在此前定义,也可以没有定义,程序段1\2是由语句或者预命令组成的程序序列。
功能 :标识符被#define定义过,则进行对程序段1的编译,否则对程序2进行编译。若无程序二,#else也可以没有
2.#ifndef 标识符
程序一
#else
程序二
#endif
3.#if常量表达式
程序段1
#else
程序段2
#endif
类型转换
不同类型数据之间进行混合运算,先进行转换,再进行运算
1.运算规律
1.+、-、*、/的运算中,先将数据类型转换为较大的数据类型再进行计算。
2.字符型与整型进行运算,用字符型所对应的ASCII码值与整型进行运算
3.整型有符号转换为无符号运算
以上由编译系统自动完成
简而言之:转向数据长度增长的方向
2.强制类型转换和赋值
语法格式
(类型名)(表达式);
赋值转换:
当赋值运算右边的表达式的类型和左边的变量类型不一致时,首先将右边的表达式的类型转换为左边的变量类型,然后将转换后的表达式的结果赋值给左边的变量,整个表达式结果类型是左边的变量类型。
具体规则:
1.整型数据赋值给float、double类型时,数值不变,但以float、double实型储存到变量中。
2.float、double实型数据赋值给整型变量时,舍去小数部分,保留整数部分。
3.字符型付给整型时,字符型占1字节,整型占2-4字节,所以字符型只存低8位,高位由系统处理。
4.有符号的int整型赋值给long long整型时要进行符号拓展。
5.unsigned int型数据赋给long int时,只需要高位补0;
数组:
1.一维数组
一维数组是指数组中的每个元素只带有一个下标的数组。
2.定义方法
一般形式:类型符 数组名【常量表达式】
注意:需要符合标识符规则
长度需要确定
常量表达式不能是变量
数组中的第一个元素下标是0
说明:
1.一个数组元素实质是一个变量名,代表存储单元(一个),一个数组占据的是一连串的存储单元;
2.引用数组元素时,数组下标可以是整形常量或者整型表达式;
3.数组需要先定义后使用;
4.只能逐个引用数组不能一次引用整个数组。
3.初始化
当数组定义后,系统会开辟给数组一连串的存储单元,但这些存储单元没有确定的值。可以在定义数组是位所包含的数组元素赋值。
1.定义是全部元素赋予初值
2.定义时部分元素赋予初值,其余自动给0;
3.可以用{0}使数组所有元素都是0
4.如果数组元素都赋予初值,数组长度可以省略,元素由初值数量倒推;
说明:
1.所赋初值放在一堆花括号内,数值类型必须与说明类型一致;
2.所赋初值之间用逗号隔开,系统将按这些数值的排列顺序,从第一位开始依次赋值
3.不能跳过前面的元素给后面的元素赋初值,但是允许前面赋值为0;
4.可以通过赋初值来顶i数组的大小,定义数组时的一对方括号可以不指定数组的大小;