第二章 数据与数据类型

本文详细介绍了C语言中的常量与变量概念,包括整型、实型、字符和字符串常量,以及枚举和常变量的区别。此外,涵盖了数据类型分类、作用域和生命周期,以及不同类型的数据存储方式。深入理解了变量定义、分类和C语言中的数据组织方式。
摘要由CSDN通过智能技术生成

1.常量和变量

常量

整型常量

如 1000, 12345, 0,-345 等都是整型常量。

实型常量

实型常量有两种表示形式:
a. 十进制小数形式, 由数字和小数点组成。
b. 指数形式(12.34e3 )

字符常量

  • 普通字符

用 ’ ’ 括起来的一个字符

  • 转义字符

以字符“\” 开头的字符序列

  • 字符串常量
    字符串常量是双撇号中的全部字符( 但不包括双撇号本身)。
  • 标识符常量

#define 定义的常量

使用符号常量的优点:
a. 含义清楚
b. 在需要改变程序中多处用到的同一个常量时, 能做到“一改全改”

  • 枚举常量
  • const修饰的常变量
#include <stdio.h>
enum Sex
{
    MALE,
    FEMALE,
    SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
    3.14;//字面常量
    1000;//字面常量
    const float pai = 3.14f; //const 修饰的常量
    pai = 5.14;//ok?
    #define MAX 100 //#define的标识符常量
    return 0;
}
  • 转义字符

转义字符

变量

定义变量

int age = 150;
float weight = 45.5f;
char ch = 'w';

变量必须先定义后使用

变量的分类

  • 局部变量
  • 全局变量
#include <stdio.h>
int global = 2019;//全局变量
int main()
{
    int local = 2018;//局部变量
    //下面定义的global会不会有问题?
    int global = 2020;//局部变量
    printf("global = %d\n", global);
    return 0;
}

当全局变量和局部变量同名是,局部变量优先使用

  • 常变量
const int a=3


表示 a 被定义为一个整型变量, 指定其值为 3, 而且在变量存在期间其值不能改变。

  • 常变量与变量的的区别:
    常变量具有变量的基本属性, 有类型, 占存储单元, 只是不允许改变其值。
  • 常变景与符号常量的区别 :
    预编译指令, 它只是用符号常量代表一个字符串, 在预编译时仅是进行字符替换 ,而常变景要占用存储单元, 有变量值, 只是该值不改变而己

变量的作用域

作用域(scope),程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的;而限定这个名字的可用性的代码范围就是这个名字的作用域。

  1. 局部变量的作用域是变量所在的局部范围。
  2. 全局变量的作用域是整个工程。

变量的生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

  1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
  2. 全局变量的生命周期是:整个程序的生命周期。

2.数据类型

概述

C 语言要求在定义所有的变量时都要指定变景的类型, 常量也是区分类型的。
类型是对数据分配存储单元的安排, 包括存储单元的长度( 占多少字节) 以及数据的存储形式。
不同的类型分配不同的长度和存储形式。

数据类型

C 语言允许使用的类型, 如图所示, 图中有*的是 C99 所增加的

在这里插入图片描述

1.整型数据

  • 分类


在存储单元中的存储方式是: 用整数的补码形式存放。

2.浮点型数据

  • 分类

在这里插入图片描述

其数值以规范化形式存放在存储单元中(IEEE754标准)

3.字符型数据

  • 字符变量

在这里插入图片描述

  • ASCII字符集
#include <stdio.h>
int main()
{
    printf("%d\n", sizeof(char));//1
    printf("%d\n", sizeof(short));//2
    printf("%d\n", sizeof(int));// 2(4)
    printf("%d\n", sizeof(long));//4
    printf("%d\n", sizeof(long long));//8
    printf("%d\n", sizeof(float));//4
    printf("%d\n", sizeof(double));//8
    printf("%d\n", sizeof(long double));//16(8)
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值