03 变量

------------恢复内容开始------------

1,变量是程序的基本组成单位,比如:

 1 //1,引入头文件
 2 #include<stdio.h>
 3 
 4 void main() {
 5     int a = 1;//定义了一个整型变量,取名为a ,并赋值为1(强数据类型语言)
 6     int b = 3;
 7     b = 89;//给变量赋值 为 89
 8     printf("a=%d\n", a);//使用输出语句,把变量a的值输出,%d表示输出的形式为整数
 9     printf("b=%d\n", b);
10 }

 2,变量的概念:

  ①变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)

  ②

 1 //1,引入头文件
 2 #include<stdio.h>
 3 
 4 void main() {
 5     int num = 1;//整型
 6     double score = 2.3;//小数
 7     char gender = 'A';//字符
 8     char name[] = "张三";//字符串
 9     printf("num=%d score=%.2f gender=%c name=%s", num, score, gender, name);
10     说明:
11         1,如果输出的是整数:%d
12         2,如果输出的是小数 %f 如果希望保留2位小数 %.2f
13         3,如果输出的是字符:%c
14         4,如果输出的是字符串  %s
15         5,在输出不同数据时,对应的格式化的形式要对应起来
16 }

  ③变量使用注意事项:

    变量表示内存中的一个存储区域(不同的数据类型,占用的空间大小不一样)

    该区域有自己的名称和类型

    变量必须先声明,后使用

    该区域的数据可以在同一类型范围内不断变化

    变量在同一个作用域内不能重名

    变量三要素(变量名+值+数据类型)

  ④变量的数据类型

    每一中数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(使用多少字节表示)

    

    注意:在C中,没有字符串类型,使用字符数组表示字符串

       在不同系统上,部分数据类型字节长度不一样,int 2 或者4

  ⑤整数类型

    C语言的整数类型就是用于存放整数值的

类型 存储大小 值范围
char 1字节 -128到127, 即- 2^7 到 (2^7-1)
unsigned char 1字节 0到255 (2^8-1)
signed char 1字节 -128到127, 即- 2^7 到 (2^7-1)

int

signed int

2字节或4字节

-32768到32767 ( 2^15 -1)

或 -2147483648到2147483647 ( 2^31-1)

unsigned int 2字节或4字节

0到65535 ( 2^16-1)

或0到4294967295(2^32-1)

short

signed short

2字节 -32768到32767 ( 2^15 -1)
unsigned short 2字节 0到65535 ( 2^16-1)

long

signed long

4字节 -2147483648到2147483647 ( 2^31-1)
unsigned long 4字节 0到4294967295(2^32-1)

     各种类型的存储大小与操作系统,系统位数和编译器有关

     C语言的整数类型,分为有符号 signed 和无符号 unsigned 两种,默认是signed

     C 程序中整型常声明为 int 型,除非不足以表示大数,才使用 long long

     bit(位):计算机中的最小存储单位,byte(字节):计算机中基本存储单元

      1 byte =8 bit 

      如:short 3  在内存中占有2个字节

        int 3 在内存中占有4个字节

        

   ⑥浮点类型

    C语言的浮点类型可以表示一个小数

    分类:float 单精度  4字节

          double 双精度 8字节

    关于浮点数在机器中存放形式的简单说明,浮点数=符号位+指数位+尾数位,浮点数是近似值

    尾数部分可能丢失,造成精度损失

    浮点型常量默认为 double 型,声明 float 型常量时,后加 ' f ' 或 ' F '

    浮点型常量有两种表示形式:

      十进制数形式:如:5.12      512.0f       .512(必须有小数点)

      科学计数法形式:如:5.12e2      5.12E-2

    通常情况下,应该使用double型,因为它比 float 型更精确

    printf(" dl = %f " , dl );  //在输出时,默认保留,小数点后6位 

 1 //1,引入头文件
 2 #include<stdio.h>
 3 
 4 
 5 void main() {
 6     //浮点型常量默认为double型,声明float型常量时,需要加"f"或"F"
 7     float d1 = 1.18909095;
 8     float d2 = 1.1f;
 9     double d3 = 1.3;
10     double d4 = 5.12;
11     double d5 = .512; //等价0.512
12     double d6 = 5.12e2;  //等价 5.12*(10^2)=512
13     double d7 = 5.12e-2; //等价 5.12*(10^-2)=0.0512
14     
15     //在输出时,如果%f默认保留小数点后6位
16     printf("d1=%.15f  d2=%f  d3=%f   d4=%f  d5=%f  d6=%f  d7=%f", d1, d2, d3, d4, d5, d6, d7);
17 }

   ⑦字符类型(char)

    字符类型可以是单个字符,字符类型是char,char 是1个字节(可以存字母或者数字),多个字符成为字符串,在C语言中,使用char数组表示,数组不是基本数据类型,而是构造类型

    基本使用:

1 //1,引入头文件
2 #include<stdio.h>
3 
4 void main() {
5     char c1 = 'A';
6     char c2 = '0';
7     char c3 = '\t';
8     printf("c1=%c  c2=%c  c3=%c ", c1, c2, c3);
9 }

   使用细节:

    字符常量时用单引号括起来的单个字符

    C中还允许使用转义字符 ' \ ' 来将其后的字符转变为特殊字符型常量

    在C中,char的本质是一个整数,在输出时,是ASCII码对应的字符

    可以直接给char赋一个整数,然后输出时,会按照对应的ASCII字符输出

    char类型是可以进行运算的,相当于一个整数,因为它都对应有unicode码

1 #include<stdio.h>
2 
3 void main() {
4     char c1 = 'a';
5     char c2 = 'b';
6     char c3 = 97; //这时当我们以%c输出时,就会安装ASCII编码表,理解字符《==》数字的对应关系,97对应字符 a
7     int num = c2 + 10;  //98+10
8     printf("c1=%c c2=%c c3=%c num=%d", c1, c2, c3, num);
9 }

    字符类型本质探讨:

    字符型存储到计算机中,需要将字符对应的码值(整数)找出来

    存储:字符 ' a ' --->码值(97) --> 二进制 (1100001) --> 存储()

    读取:二进制(1100001) --> 码值(97) --> 字符 'a' --> 读取(显示)

    字符和码值的对应关系是通过字符编码决定的

    ASCII码介绍

    在计算机内部,所有数据都使用二进制表示,每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256中状态,这被称为一个字节(byte),一个字节一共可以用来表示256中不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111

    ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定,这被称为ASCII码,ASCII码一共规定了127个字符编码,比如空格 " SPACE" 是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一为0.

    ASCII码表

    缺点:不能表示所有字符

  ⑧布尔类型:boolean

    C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真

    但这种做法不直观,所以我们可以借助C语言的宏定义

    C语言标准提供了_Bool型,_Bool 仍是整数类型,但与一般整型不同的是,_Bool 变量只能赋值0或1,非0的值都会被存储为1,C99 还提供了一个头文件 <stdbool.h>定义了bool 代表_Bool,true代表1,false代表0,只要导入 stdbool.h ,就能方便的操作布尔类型了,比如 bool flag=false;

 1 #include<stdio.h>
 2 //宏定义
 3 #define BOOL int
 4 #define TRUE 1
 5 #define FALSE 0
 6 
 7 void main() {
 8     int isPass = -1; //0表示假,非0表示真
 9     //定义一个布尔变量
10     BOOL isOK = TRUE;  //等价于 int isOK=1
11 
12     if (isPass) {  
13         printf("通过考试\n");
14     }
15     if (isOK) {
16         printf("OK");
17     }
18 }

  打印结果:

  通过考试

  OK

        

猜你喜欢

转载自www.cnblogs.com/shanlu0000/p/12337219.html