C语言基础第一课
(一)
源文件:.c(c语言)
.cpp(c++语言)
预编译文件:.i
目标文件:.obj
.o
可执行文件:.exe
源文件进行预编译到预编译文件,两者皆属于文本文件。预编译过程中只处理包含*“#”*开头部分。预编译文件进行编译到目标文件,目标文件为二进制文件,无法进行运行。目标文件进行链接到可执行文件,两者皆属于可执行文件,可执行文件可以进行运行。
***凡是在函数之外定义的变量都在data(数据段),凡是在函数内定义的变量都在stack(栈段)。
static静态变量:对于静态局部变量而言,静态关键字可以改变其生命周期,而对于静态全局变量不能。静态全局变量的作用域仅限于该文件,而静态局部变量的作用域仅在其定义的复合语句中。
类型:(1)所有的变量和函数必须先定义(声明)后使用。
(2)类型强转:只是对数值进行转换,并不是进行强转类型。
1.基本数据类型: //字节
有符号整型
char // 1
short // 2
int // 4
long int // 4
long long // 8
有符号浮点型 (自然带符号)
float // 4
double // 8
long double // 8\12
真假(true or false)
bool //1(1bit)
无符号型在整型前+unsigned
2.一个存储单元 =》1byte(字节) =》8bit(只存放0和1)
***3.char型
进制转换:
int a = 12; //十进制
int b =012; //八进制
int c =0x12; //十六进制
(234)8 =》(156)10
(109)10 =》(0110 1101)2 =》(155)8 =》(6D)16
每三位位二进制表示一位八进制,每四位二进制表示一位十六进制。
格式控制符:“%d”、“%c”
char a = 0;数值 =》a = 0;
char b = ‘0’;ASCII码 =》b = 48;
char c = ‘\0’;转义字符(空字符)=》c = 0;
补码进行存放数值,例如char a = 5;//0000 0101;char a = -5;//1111 1011。
最大负数为1111 1111 =》 -1;
对于1000 0000(-128)而言,首位即为符号位也是数值位。
例
int main()
{
for(char a = 0; a < 128 ; ++a)
{
printf("%d",a);
}
return 0;
}
由于127 =>-128,-1 =>0进行循环,因此输出为死循环。