首页 > 编程语言 > 详细

C语言变量及数据类型

时间:2021-01-04 14:49:42      阅读:32      评论:0      收藏:0      [点我收藏+]

变量

1.为什么需要变量

  • 一个程序就是一个世界

1.1 变量是程序的基本组成单位

  • 无论是使用哪种高级语言编写程序,变量都是其程序的基本组成单位,比如
void main(){
    int a = 1; //定义了一个整型变量,取名为a,并赋值为1(强数据类型语言)
    int a = 3;
    b = 89; //给变量赋值为89
    printf("a=%d \n",a);//使用输出语句,把变量a值输出  %d表示输出的形式为整数
    printf("b=%d\n",b);
    getchar(); //将控制台停留,等待输入
}

2.变量的介绍

2.1概念

  • 变量相当于内存中一个数据存储空间的表示,通过变量名可以访问到变量值。

2.2 变量使用的基本步骤

  • 声明变量

    • int num ;
  • 赋值

    • num = 60 ;
  • 使用

    • printf("num = %d",num);
  • 也可以一步到位

    • int num2 = 99;

2.3 变量快速入门

#include <stdio.h>

void main(){
    int num = 1;
    double score = 2.3;
    char gender = ‘A‘;
    char name[] = "尚硅谷";
    
    //1.如果输出的是整数   %d
    //2.如果输出的是小数   %f,如果希望保留小数点 %.2f
    //3.如果输出的是字符   %c
    //4.如果输出的是字符串  %s
    //5.在输出不同数据时,对应格式化是形式要对应起来
    printf("num=%d score = %.2f gender = %c name = %s",num,score,gender,name);
    getchar();
   
}

//看到变量应想起对应的内存图

2.4 变量使用注意事项

  • 变量表示内存中的一个存储区域(不同的数据类型,占用的空间大小不一样)
  • 该区域有自己的名称和类型
  • 变量必须先声明,后使用
  • 该区域的数据可以在同一类型范围内不断变化
  • 变量在同一作用域内不能重名
  • 变量三要素(变量名+值+数据类型)
  • 演示
#include <stdio.h>

void main(){
    //变量必须先声明后使用
    int num;
    num = 10;
    int num2 = 34;
    num2 = 4;
    num2 = 43;
    
    num = 3.4; //从 double 到 int ,可能丢失数据;
    
    printf("num=%d",num);
    getchar();
    //system("pause");
}

2.5 变量的数据类型

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

  • 数据类型

    • 基本类型 (数值类型 (整型:短整型short 整型int 长整型long ) (浮点型 :单精度型float 双精度型 double) 字符类型char)
    • 构造类型 :数组 结构体(struct) 共用体(union) 枚举类型(enum)
    • 指针类型
    • 空类型(void)
  • 数据类型小结

    • 注意:在C中,没有字符串类型,使用字符数组表示字符串
    • 在不同系统上,部分数据类型字节长度不一样,int 2或者 4

2.6 整数类型

2.6.1.基本介绍

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

2.6.2.整型的类型

  • char 一字节 -128到127
  • unsigned char 一字节 0到255
  • signed char 一字节 -128到127
  • int (signed int ) 2或4字节 -215到215-1 或 -2^31到 2^31-1
  • unsigned int 2或4字节 0到65535 或 0到4294967295
  • short(signed short) 2字节 -215到215-1
  • unsigned short 2字节 0到65535
  • long(signed long) 4字节 -231到231-1
  • unsigned long 4字节 0到2^31-1

2.6.3.整型的使用细节

  • 各种类型的存储大小与操作系统、系统位数和编译器有关,目前同用的以64位为主。
  • 在实际工作中,C程序通常运行在Linux/Unix操作系统下
  • C语言的整型类型分为有符号signed和无符号unsigned两种,默认是signed
  • C程序中整型常声明为int型,除非不足以表示大数,才使用long long
  • bit(位):计算机中的最小存储单元;byte(字节):计算机中基本存储单元
    • 1byte = 8 bit

2.7浮点类型

2.7.1 基本介绍

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

2.7.2 案例演示

void main(){
    
    double salary = 100.56;
    double num1 = 1.3;
    double num2 = 4.5;
    double sum = num1 + num2;
    printf("sum = %.2f",sum);
    getchar();
    
}

2.7.3 浮点型的分类

单精度浮点型float 4字节 6位小数 1.2E-38到3.4E38

双精度浮点型 double 8字节 15位小数 2.3E-308到1.7E308

2.7.4 说明

  • 关于浮点数在机器中存放形式: 浮点数 = 符号位 + 指数位 + 尾数位,浮点数是近似值
  • 尾数部分可能丢失,造成精度损失

2.7.5 浮点数使用细节

  • 浮点数常量默认位double类型,声明float型常量时,须后加 f 或 F

  • 浮点数常量常有两种表示形式

    • 十进制形式
    • 科学计数法形式
  • 通常情况下,应该使用double类型,因为它比float型更加精确

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

  • 代码

#include <stdio.h>

void main(){
    
    float d1 = 1.239173621;//从double到float截断
    float d2 = 1.1f;
    double d3 = 1.3;
    
    double d4 = 5.12;
    double d5 = 0.521;
    
    double d6 = 5.12e2;
    double d7 = 5.12e-2;
    
    printf("d1=%.15f d2=%f",d1,d2);
    getchar();
}

2.8 字符类型

2.8.1 基本介绍

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

2.8.2 基本案例

void main(){
    
    char c1 = ‘A‘;
    char c2 = ‘0‘;
    char c3 = ‘\t‘;
    printf("c1=%c c2=%c c3=%c",c1,c2,c3);//%c表示以字符的形式输出
    getchar();
}

2.8.3 字符类型使用细节

  • 字符常量是用单引号括起来的单个字符
  • C中还允许使用转义字符 \ 来将其后的字符转变为特殊字符型常量
  • 在C中,char的本质是一个数,在输出时,是ASCII码对应的字符
  • 可以直接给char赋值一个整数,然后在输出时,会按照对应的ASCII字符输出
  • char类型是可以进行运算的,相当于一个整数,因为它都有对应的Unicode码
  • 案例演示
#include <stdio.h>

void main(){
    char c1 = ‘a‘;
    char c2 = ‘b‘;//这时当我们以%c输出时,就会按照ASCII编码表对应的字符输出
    char c3 = 97;
    
    //注意:vs2010编译器是C89,要求变量的定义在执行语句之前
    
    int num = c2 + 10;
    
    printf("c1=%c c2=%c c3=%c",c1,c2,c3);
    printf("num=%d",num);
    
    getchar();
}

2.8.4 字符类型本质

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

    • 存储:字符‘a‘ --> 码值(97) --> 二进制(1100001)-- > 存储
    • 读取:二进制(1100001) --> 码值(97) --> 字符‘a‘ --> 读取
  • 字符和码值的对应关系是通过字符编码表决定的

2.9 ASCII码介绍

  • 在计算机内部,所以数据都使用二进制表示。每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256种状态,这被称为一个字节(byte)。一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111.
  • ASCII码:上世纪60年代,美国制定了一套字符编码,对英语字符与二进制之间的关系做了统一规定,被称为ASCII码,ASCII码一共规定了127个字符编码。只占用一个字节的后面7位,最前面的一个同一为0
  • 缺点
    • 不能表示所有字符

2.10 布尔类型

2.10.1 基本介绍

  • C语言标准(C89)没有定义布尔类型,所以C语言判断真假时以0为假,非0为真;
  • 但这种做法不直观,所以可以借助C语言的宏定义
  • C语言标准C99提供了Bool类型,Bool仍时整数类型,但与一般整型不同的是,Bool变量只能赋值0或者1,非0 的值都会被存储为1,C99还提供一个头文件<stdbool.h>定义了bool代表Bool,true代表1,false代表0。只要导入stdbool.h,就能很方便的操作布尔类型了。
    • 条件控制语句 :if
    • 循环控制语句 : while

2.10.2 应用案例

#include <stdio.h>

//宏定义
#define BOOL int
#define TRUE 1
#define False 0

void main(){
    
    int isPass = -1;
    
    //定义一个布尔变量
    BOOL isOk = TRUE;
    if(isPass){
        printf("通过考试");
    }
    
    if(isOk){
        printf("OK");
    }
    
    getchar();
}

C语言变量及数据类型

原文:https://www.cnblogs.com/mx-info/p/14229048.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!