2天学完C语言-------1. 变量和数据类型

1.1 变量的定义和声明

变量是用于存储数据的内存空间的名称。

在使用变量之前,需要先进行定义和声明。

当我们使用变量时,需要先进行定义和声明。下面是一些变量的定义和声明的示例:

1. 定义并声明一个整数型变量

   int age;

   这样就定义了一个名为age的变量,可以用来存储整数值。

2. 定义并声明一个浮点数型变量

   float weight;

   这样就定义了一个名为weight的变量,可以用来存储浮点数值。

3. 定义并声明一个字符型变量

   char grade;

   这样就定义了一个名为grade的变量,可以用来存储字符值。

4. 定义并声明一个布尔型变量

   int isPassed;

这样就定义了一个名为isPassed的变量,用于存储布尔值。

注意:在C语言中,定义变量时需要指定变量的类型,但是声明变量可以只给出变量名,而不需要指定类型。

同时,可以在定义变量的同时进行初始化。例如:

1. 定义并初始化一个整数型变量

int num = 10;

这样定义了一个名为num的变量,并将其初始值设置为10。

2. 定义并初始化一个浮点数型变量

float pi = 3.14159;

这样定义了一个名为pi的变量,并将其初始值设置为3.14159。

3. 定义并初始化一个字符型变量

char letter = 'A';

这样定义了一个名为letter的变量,并将其初始值设置为字符'A'。

4. 定义并初始化一个布尔型变量

int isTrue = 1;

这样定义了一个名为isTrue的变量,并将其初始值设置为1,代表真。在实际编程中,可以根据需要定义和声明多个变量,以存储和处理不同类型的数据。

1.2 C语言数据类型

- C语言提供了多种数据类型,包括基本数据类型和复合数据类型。

- 基本数据类型包括整数类型、浮点数类型、字符类型和布尔类型。

- 复合数据类型包括数组、结构体和联合体。

C语言提供了多种数据类型,包括以下几类:

1. 基本数据类型(Primary Types)

整数类型(Integer Types):用于表示整数值,例如int、short、long等。

- 包括有符号整数类型(如int、short、long)和无符号整数类型(如unsigned int、unsigned short、unsigned long)。不同的整数类型有不同的取值范围。

浮点数类型(Floating-Point Types):用于表示带小数部分的数值,例如float、double等。包括单精度浮点数类型(float)和双精度浮点数类型(double)。浮点数类型用于表示带小数部分的数值。

字符类型(Character Type):用于表示单个字符,例如char。

- 用于存储单个字符的数据类型。

- 可以使用字符常量和转义序列来表示特殊字符。

布尔类型(Boolean Type):用于表示真值,以整数形式表示真(非零)和假(零)。

 布尔类型用于表示真值,有两个值:真(true)和假(false)。

- 在C语言中,使用整数类型int来表示布尔类型,取值0表示假,非0表示真。

2. 复合数据类型(Derived Types)

数组类型(Array Types):将相同类型的数据元素组合在一起,形成有序的数据集合。

结构体类型(Structure Types):将不同类型的数据成员组合在一起,形成自定义的数据类型。

联合体类型(Union Types):同一内存空间可以容纳不同类型的数据。

 #include <stdio.h>
// 定义联合体类型
union Data {
      int i;
      float f;
      char str[20];
};
int main() {
    union Data data; // 访问联合体成员
    data.i = 10;
    printf("data.i: %d\n", data.i);
    data.f = 3.14;
    printf("data.f: %.2f\n", data.f);
    strcpy(data.str, "Hello");
    // 联合体内存占用的是最大成员的大小
    printf("data.str: %s\n", data.str); 
    printf("Memory occupied by data: %ld bytes\n", sizeof(data));
    return 0;
}

在上面的示例中,我们首先定义了一个名为Data的联合体类型,它包含了int型的成员i、float型的成员f和字符数组型的成员str。在主函数中,我们声明了一个data变量,并分别访问了联合体的不同成员。我们给联合体的成员赋值,并使用printf函数打印出相应的值。需要注意的是,联合体的内存占用是最大成员的大小,因为联合体中的成员共享同一块内存。

输出结果:

data.i: 10

data.f: 3.14

data.str: Hello

Memory occupied by data: 20 bytes

      通过联合体,我们可以在同一块内存中存储不同类型的数据,只能使用其中一个成员来

访问该共享内存区域。这在某些情况下可以节省内存空间并方便数据的理。

3. 指针类型(Pointer Types)

指针类型用于存储地址值,指向其他数据类型。

4. 枚举类型(Enumeration Types)

枚举类型用于定义一组具名的整数常量。

5. void类型

void类型用于表示没有返回值或没有任何类型的指针。

在C语言中,可以使用这些数据类型来声明和定义变量,存储不同类型的数据,并进行相应的操作和计算。根据具体的需求和数据特点,选择合适的数据类型可以提高程序的性能和效率。

6.数据类型的选择

       在选择数据类型时,需要根据数据的范围、精度和内存占用情况来进行考虑。特定的数据类型可以提供更高的精度或节省更多的内存空间。

      通过了解变量和数据类型的基础知识,可以更好地理解如何声明和使用变量,以及如何选择适当的数据类型来存储不同类型的数据。

C语言中的数据类型具有不同的范围、精度和内存占用,这些特征决定了数据类型在程序中的使用方式和适用场景。下面是C语言中常见数据类型的范围、精度和内存占用情况的概述。

1. 整数类型

  •    char:通常占用1字节,表示字符或小整数。范围为-128到127或0到255,取决于是有符号还是无符号。
  •    unsigned char:通常占用1字节,表示无符号字符或小整数。范围为0到255。
  •    short:通常占用2字节,表示短整数。范围为-32,768到32,767。
  •    unsigned short:通常占用2字节,表示无符号短整数。范围为0到65,535。
  •    int:通常占用4字节,表示整数。范围为-2,147,483,648到2,147,483,647。
  •    unsigned int:通常占用4字节,表示无符号整数。范围为0到4,294,967,295。
  •    long:通常占用4字节或8字节,表示长整数。范围为(-2,147,483,648到2,147,483,647)或(-9,223,372,036,854,775,808到9,223,372,036,854,775,807)。
  •    unsigned long:通常占用4字节或8字节,表示无符号长整数。范围为0到(4,294,967,295或18,446,744,073,709,551,615)。

2. 浮点数类型

  •    float:通常占用4字节,表示单精度浮点数。有效位数为6-9位,范围为1.2E-38到3.4E+38(约)。
  •    double:通常占用8字节,表示双精度浮点数。有效位数为15-18位,范围为2.3E-308到1.7E+308(约)。
  •    long double:通常占用8字节或更多,表示扩展精度浮点数。有效位数和范围可能会因系统而异。

3. 其他数据类型

  •    void:用于指示无类型。不占用内存。
  •    enum:用于定义枚举类型,范围根据枚举常量的个数决定。
  •    struct:用于定义结构体类型,所占内存根据结构体成员的类型和数量决定。
  •    union:用于定义联合类型,所占内存根据联合成员中最大类型的大小决定。

       以上是常见的C语言数据类型及其范围、精度和内存占用情况的一般规定。具体的实现可能因编译器、操作系统和硬件平台而有所不同。您可以根据具体的需求选择合适的数据类型来确保程序的正确性和性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小白Erike.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值