数据 常量 变量

 

什么是数据

  • 比如计算机的:有文档数据、图片数据、视频数据,还有聊QQ时产生的文字数据、用迅雷下载的文件数据等。

数据分类:静态数据 和 动态数据。

静态数据 :存于硬盘

  • 概念:静态数据是指一些永久性的数据,一般存储在硬盘中。硬盘的存储空间一般都比较大,现在普通计算机的硬盘都有500G左右,因此硬盘中可以存放一些比较大的文件。
  • 存储的时长:计算机关闭之后再开启,这些数据依旧还在,只要你不主动删掉或者硬盘没坏,这些数据永远都在。
  • 哪些是静态数据:静态数据一般是以文件的形式存储在硬盘上,比如文档、照片、视频等。

动态数据 :存于内存

  • 概念:动态数据指在程序运行过程中,动态产生的临时数据,一般存储在内存中。内存的存储空间一般都比较小,现在普通计算机的内存只有4G左右,因此要谨慎使用内存,不要占用太多的内存空间。
  • 存储的时长:计算机关闭之后,这些临时数据就会被清除。

数据间转换 静态 与 动态

  • 静态 -> 动态 硬盘的mp4 读取 内存的暴风影音
  • 动态 -> 静态 互联网 内存迅雷 下载到 硬盘mp4

数据大小 数据都有大小

  • 不管是静态还是动态数据,都是0和1组成的
  • 静态数据就会占用硬盘的空间,动态数据就占用内存的空间
  • 数据越大,包含的0和1就越多,比特位和字节
  • 1 KB = 1024 B,1 MB = 1024 KB,1 GB = 1024 MB,1 TB = 1024 GB

C 语言数据类型分类

常量

  • 计算机中的常量:表示固定不变的数据,用常量来表示
  • 常量的分类:整形常量、实型常量、字符常量、字符串常量

  • 整型常量 int

    • 包括了所有的整数,比如6、27、109、256、-10、0、-289等
  • 浮点型常量(float\double)
    • float:单精度浮点型,也是小数,比double的精确程度低,也就是说所能表示的小数位数比较少。为了跟double区分开来,float 型数据都是以f结尾的,比如5.43f、-2.3f、0.0f。需要注意的是,绝对不能有10f这样格式的,编译器会直接报错,只有小数才允许加上f。
    • double:双精度浮点型,其实就是小数。比如5.43、-2.3、0.0等(注意,0.0也算是个小数)
  • 字符常量(char)
    • 将一个数字(0~9)、英文字母(a~z、A~Z)或者 其他符号(+、-、!、?等)用单引号括起来,这样构成的就是字符常量。比如'6'、'a'、'F'、'+'、'$'等。
    • 注意:单引号只能括住1个字符,而且不能是中文字符,下面的写法是错误的:'abc'、'123456'、'男'
  • 字符串常量

    • 将一个或者多个字符用双引号("")括起来,这样构成的就是字符串常量。比如"6"、"男"、"哇哈哈"、"abcd"、"my_car4".

    常量的书写

    // 1、整形常量书写
    
    // 10进制整形常量(计算默认的使用10进制常量表示整数)
    10;
    18;
    
    // 8进制整型常量 //以0开头
    045; //这是一个8进制的整数,误区:不是10进制的45
    
    // 2进制整型常量 //以0b(0B)开头
    0b11111111111111111111111111111111; //32位的1
                                    //表示的是一个-1
    
    // 16进制整型常量 //以0x开头
    0x438fa; //这是一个16进制的整数
    
    //2、实型(小数)常量的表示方法
    
    // 单精度的常量 //以f结尾
    2.3f; //表示单精度的小数  占用4个字节
    
    // 双精度的常量
    2.3;  //计算机中默认的以双精度的形式表示一个小数
    
  //3、字符型常量表示
     //用单引号('')括起来的单个字符,里面可以是字符、数字、符号、就是表示字符常量

    'a';
    '*';
    '&';  //都是字符常量

        //特殊的字符常量(转义字符)
    '\n';
    '\t';
    '\\';
    '\r';  //这也都是字符常量(特殊的字符常量,是转义字符)

    //'ab'; //不合法的
  //4、字符串常量 用双引号括起来,里面可以是字符、数字、符号
    "abc";  //a b c \0
    "a";    //a \0
    "**";
    " ";  //包含一个空格
    "";   //空字符串,什么东西都没有

变量

  • 当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。
  • 任何变量在使用之前,必须先进行定义。
  • 定义变量的目的是:在内存中分配一块存储空间给变量,方便以后存储数据。
  • 不同类型的变量占用不同大小的存储空间。内存极其有限,分配适当的存储空间

    变量的使用

    赋值:往变量里面存点东西,就是赋值

    i = 10;
    注意:这里的等号=,并不是数学中的“相等”,
    而是C语言中的赋值运算符,作  用是将右边的常量10赋值给左边的变量i
    
    • 连续赋值 a = b = 10;

    • 第一次赋值,可以称为“初始化”

    初始化的两种形式

    • 先定义,后初始化:int a; a = 10;
    • 定义的同时进行初始化:int a = 10;

    变量的修改

    • 可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值
      i = 10;
      i = 20;
      变量i最后的值是20
      
    • 没有初始化 不要拿来使用 错误
    int score;  // 没有初始化
    printf("score=%d", score);
    

    变量之间的值传递

    • 可以将一个变量的值赋值给另一个变量
      int a = 10;
      int b = a;
      

变量的格式

  • 定义变量
  • 格式1 变量的类型 变量的名称;
    int a;  //定义了一个 int 类型(4个字节)的变量,变量名是a
    char ch; //定义了一个char 类型的变量,变量名是ch
    float f1;
    
  • 格式2 一次性定义多个变量
    变量类型 变量名1,变量名2,变量名3;
    int a,b,c,d;
    //定义了4个int类型的变量,变量名分别为a,b,c,d
    

变量作用域

  • 作用域:可以理解为变量可以使用的范围
  • 变量按照作用域分类:局部变量和全局变量
    {
       代码块语句;
    }
    
  • 局部变量的作用域:

    • 从局部变量定义的位置开始,到它所在的代码块或者函数体的“}”为止

    • 注意:在代码块的内部可以定义和块外部同名的变量,块内部的会暂时屏蔽(外部的不起作用)块外部的变量的作用域

  • 全局变量的使用 :在函数的外部定义的变量是全局变量

    • 从定义的位置开始,到文件末尾,在不同的函数中都可以使用

变量的内存地址

  • 内存以“字节为单位”
  • 所占用字节数跟类型有关,也跟编译器环境有关 
int b = 10;
int a = 20;
 先定义的是存高地址
 内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大
每个变量都有地址:第一个字节的地址就是变量的地址

int a;
printf("a的地址是:%p\n", &a);//查看内存地址:

转载于:https://www.cnblogs.com/jjios/p/5306622.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值