用于定义变量或者类型
类型 变量名:
char , short , int , long , float , double
struct , union , enum , signed , unsigned , void
- char 字符型,用char定义的变量是字符变量,占1个字节 8比特
char ch = ‘a’ =为赋值号
char ch1 = ‘1’; 正确
char ch2 = ‘1234’; 错误,只能用单个字符赋值
查看0-255对应的字符
#include
int main()
{
int i;
for (i = 0; i < 255; i++)
{
printf("%c %d", i, i);
}
return 0;
}
用ASCII码赋值
#include
int main()
{
char ch;
//ch = 'a';
ch = 97;
printf("ch = %c\n", ch);
return 0;
}
1.2 short 短整型,使用short定义的变量是短整型变量,占2个字节
short int a=11; -32768 ----- 32767
1.3 int 整型,用int定义的变量是整型变量,在32位系统下占4个字节,在16平台下占两个字节
int a = 44; -20亿 ----- 20亿
查看char,short int,int 占用的字节位数
#include
int main()
{
char a;
short int b;
int c;
printf("sizeof(a) = %d\n", sizeof(a));
printf("sizeof(b) = %d\n", sizeof(b));
printf("sizeof(c) = %d\n", sizeof(c));
return 0;
}
1.4 long长整型,用long定义的变量是长整型的,在32位系统占4个字节
long int a=66;
1.5 float 单浮点型(实数),用float定义的变量是单浮点型的实数,占四个字节
float b = 3.8;
1.6 double 双浮点型(实数),用·double定义的变量是双浮点型的实数,占八个字节
double f = 3.8;
#include
int main()
{
char a;
short int b;
int c;
long int d;
float e;
double f;
printf("sizeof(a) = %d\n", sizeof(a));
printf("sizeof(b) = %d\n", sizeof(b));
printf("sizeof(c) = %d\n", sizeof(c));
printf("sizeof(d) = %d\n", sizeof(d));
printf("sizeof(e) = %d\n", sizeof(e));
printf("sizeof(f) = %d\n", sizeof(f));
return 0;
}
1.7 struct 这个关键字是与结构体类型相关的关键字,可以用它来定义结构体类型
1.8 union 这个关键字是与共用体(联合体)相关的关键字
1.9 enum与枚举类型相关的关键字
1.10 signed有符号(正负)的意思
在定义char、整型(short、int、long)数据的时候用signed修饰,代表定义的数据是有符号的,可以保存为正数,也可以保存为负数
signed int b = -6;
注意:默认情况下signed可以省略,即int a=-10;默认a就是有符号的数据
1.11 unsigned 无符号的意思
在定义char、整型(short、int、long)数据的时候用unsigned修饰,代表定义的数据是无符号的数据
只能保存正数和0
unsigned int a = 101;
unsigned int a = -101;//错误
1.12 void 空类型的关键字
char,int,float 都可以定义变量
void 不能定义变量,没有void类型的变量
void 是用来修饰函数的参数或者返回值,代表函数没有参数或没有返回值
例如:void fun(void)
{
}
代表fun函数没有返回值,fun函数没有参数
register , static , const , auto , extern
- register 是寄存器变量的意思,用register修饰的变量是寄存器变量
在编译的时候告诉编译器这个变量是寄存器变量,尽量将其存储空间分配在寄存器中。注意:
定义的变量不一定真的存放在寄存器中
cpu取数据的时候去寄存器中拿数据比去内存中拿数据要快
因为寄存器比较宝贵,所以不能定义寄存器数组
register 只能修饰字符型及整型,不能修饰浮点型register char ch;
register short int b;
register int c;
register float d;//错误的
因为register修饰的变量可能存放在寄存器中不存放在内存中,所以不能对寄存器取变量地址。只有存放在内存中的数据才有地址。
register int a;
int *p;
p = &a;//错误的,a可能没有地址
2.static 是静态的意思
static 可以修饰全局变量、局部变量、函数
3.const 是常量的意思
用const修饰的变量是只读的,不能修改它的值
const int a=101;//在定义a的时候用const修饰,并赋初值为101
const 可以修饰指针
4.auto int a;和 int a;是等价的,auto关键字现在基本不用
5.extern 是外部的意思,一般用于函数和全局变量的声明
if , else , break , continue , for , while , do , switch , case , goto , default
sizeof , typedef , volatile
1.sizeof
用来测量变量,数组占用存储空间的大小(字节数)
2.typedef
给一个已有的类型,重新起个类型名,并没有创造一个新的的类型typedef起别名的方法:
用想起名的类型定义一个变量
short int a;
用新的类型名替代变量名
short int INT16;
在最前面加typedef
typedef short int INT16;
现在可以使用新的类型名来定义变量
INT16 b; 等于 short int b;
#include
typedef short int INT16;
int main()
{
short int a = 101;
INT16 b = 111;
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
- volatile 易改变的意思
用volatile定义的变量,是易改变的,集告诉cpu每次用volatile变量的时候,重新去内存中取,保证用的是最新的值,而不是寄存器中的备份
volatile 关键字现在较少适用
volatile int a=10;
命名规则:
在c语言中给变量和函数起名的时候,由字母、数字、下划线构成
必须以字母或者下划线开头
int a2; //正确的
int a_2; //正确的
int _b; //正确的
int 2b; //错误的
int $a2; //错误的
Linux 风格
stu_num
驼峰风格
StuNum
大小写敏感
int Num;
int num; //两个变量
C语言的程序结构
一个完整的C语言程序,是由一个、且只能有一个main()函数 (又称主函数,必须有和若干个其他函数结合而成)
main 函数是程序的入口,即程序从main函数开始执行