变量:内存中的一片空间,有名字,大小由类型决定。
int :一般4个字节
float :4个字节
double :8个字节
char :1个字节(若函数的返回值为char型,则一般转化为返回整形)
1字节(Byte)=8二进制位(bit)
符号位 0 正数 1负数
变量和作用域:
局部变量和全局变量:
局部变量:
自动局部变量:在函数内部出现的都是自动变量。
静态局部变量:在前面加上static
全局变量:会自动初始化为0
不能在前面加上auto。
extern 类型 变量名 来声明,声明一般放在头文件中。
静态全局变量:
限制变量的访问,只能在本文件内部访问
静态全局函数:
限制函数的调用,只能在本文件的内部使用。
可以在函数中定义函数,相当于局部函数,只能在定义的那个函数中调用。
内存中的一片空间,有名字,有空间的大小(由类型决定)。
类型 名称;
类型:
char 1Byte -128 ~ 127
unsigned char 1Byte 0 ~ 255
short int 2Byte -32768 ~ 32767
unsigned short int 2Byte 0 ~ 65535
int 4Byte -2147483648 ~ 2147483647
unsigned int 4Byte 0 ~ 4294967295
long int 4
unsigned long int 4
long long int 8 -2^63 ~ 2^63-1
unsigned long long int 8 0 ~ 2^64 -1
float 4 10^38
double 8 10^308
long double 12
变量的声明:
int x;
float y,z;
类型:大方向只有两种:int float
标识符和关键字:identifier and keywords
标识符,变量,函数,宏,其他尸体的名称:
以字母、下划线开头
可以包含数字,字母,下划线
大小写敏感
不能和关键字冲突
标识符长度有限制吗?
c89声明可以任意长度,但编译器只记住前31位
c99中是63个
变量名最好要望文生义
关键字
有特殊含义的一串字符
全部小写
标准库中的函数名全部是小写
c语言的书写规范:
语句可以分开放在任意多行。
空格可以使我们更容易区分。
缩进有助于轻松识别程序嵌套
空行可以把程序华分成逻辑单元
驼峰命名方式和下划线区分方式。
eg:isGirl IsGirl(VC 居多) is_girl(UC 中居多)
数据类型:
整数类型:
char:
int :
浮点数类型:没有无符号的浮点数
float(单精度) :4个字节
double(双精度):8个字节
long double(长双精度):12~16个字节
整数类型:
有符号:signed(默认)
符号位:
0:正数
1:负数
无符号:unsigned
short:
01111111 11111111 ~ 10000000 0000000
范围:-32768 ~ 32767
-2^15 ~ 2^15 -1
unsigned short:
0 ~ 65535 (2^16 - 1)
int:
范围;-2147483648 ~ -2147483647
-2^31 ~ 2^31 - 1
unsigned int :
2^32 -1
0 ~ 4294967295
long :
32二进制位 1字节=8二进制位
1Byte= 8bit
1Mbit/8 =125Byte
Long long int:8个字节的空间(C99中才有)
字面值和常量:
字面值:
3被认为是int
3.5f被认为是float
3.5被认为是double
3.5L被认为是long double
35L被认为是long int
35LL被认为是long long int
35U被认为是unsigned int
35UL被认为是unsigned long int
八进制和十六进制:(不能用二进制给变量赋值)
0377
0x12ab
十进制 --> 二进制
(1) 除二取余法:
(2)54:
128 64 32 16 8 4 2 1
0 0 1 1 0 1 1 0