C语言学习之旅第二小步——数据类型和变量

今天要复习的是第二讲C语言的数据类型和变量!这一部分不难,但是是基础中的基础很重要!!那让我们开始吧!!!


一.数据类型:

话不多说,看图:

 Part1 数据类型

1.内置类型:

  • 字符:C语言中,字符数据类型被称为char。char类型用于表示一个单个字符,它占用1个字节(8位)的存储空间。可以使用单引号来表示一个字符,如'a'或'X'。
  • 整型:我们通常知道int是C语言中的整型,但是还有short,long,long long...在使用整型变量时,我们会进行常见的算术运算(例如加法、减法、乘法和除法),并且可以使用各种控制结构来对整型变量进行操作。
  • 浮点型:在C语言中,浮点型(Floating-Point Type)用来表示带有小数部分的数值。C语言提供了三种浮点型:float、double和long double。

举个代码的示例:

#include <stdio.h>

int main() {
    float number1 = 3.14f;
    double number2 = 2.718;
    long double number3 = 1.414L;

    printf("Float number: %f\n", number1);
    printf("Double number: %lf\n", number2);
    printf("Long Double number: %Lf\n", number3);

    return 0;
}

  • 布尔类型:简单一句话就是,整数0表示假,非零值表示真。且他包含的头文件是<stdbool.h>,取值为true or false

2.自定义类型(这一部分先简单了解一下,过几天会深入学习的)

数组:

在C语言中,数组是一组相同类型的元素的集合。数组中的每个元素都有一个唯一的索引,从0开始递增。

要声明一个数组,可以使用以下语法:

type name[size];

其中,type表示数组中元素的类型,name表示数组的名称,size表示数组的大小。

例如,声明一个整数数组可以这样写:

int numbers[5];

意思是声明了一个名为numbers的整数数组,它可以存储5个整数。

结构体:结构体(Struct)是一种在编程语言中用于定义自定义数据类型的机制。它是由多个不同类型的成员变量组成的数据结构。

枚举:是一种用于定义命名常量的数据类型。枚举可以被视为一组相关的常量,这些常量可以在程序中被使用。

联合体:是一种特殊的数据结构,它允许不同类型的成员共享同一块内存空间。在C语言中,可以使用联合体来创建这样的数据结构。

下面有一个代码帮助我们简单理解一下:

#include <stdio.h>
// 定义一个联合体
union MyUnion {
    int i;
    float f;
    char c;
};
int main() {
    // 声明一个联合体变量
    union MyUnion u;
    // 修改联合体的不同成员
    u.i = 42;
    printf("Int value: %d\n", u.i);
    u.f = 3.14;
    printf("Float value: %f\n", u.f);
    u.c = 'A';
    printf("Char value: %c\n", u.c);
    // 联合体共享内存,只能同时保存一个成员的值
    printf("Int value: %d\n", u.i);
    printf("Float value: %f\n", u.f);
    printf("Char value: %c\n", u.c);
    return 0;
}

猜一猜运行的结果是什么?


答案是:

Int value: 42
Float value: 3.140000
Char value: A
Int value: 65
Float value: 65.000000
Char value: A

联合体的各个成员共享同一块内存空间,因此在修改一个成员的值后,其他成员相应地也会被修改。 所以当我们修改了联合体的成员后,其他成员的值也发生了变化。那这主要是因为它们共享同一块内存空间。

  Part2 变量

我们要介绍下面这张图上的内容:

  • 变量的创建:

    在C语言中,变量的创建包括两个步骤:

1.声明变量:在代码的适当位置,使用特定的语法声明变量的类型和名称。语法格式为 数据类型 变量名;,例如:

int age;
float salary;
char initial;

上述代码分别声明了一个整型变量 age,一个浮点型变量 salary,一个字符型变量 initial

初始化变量(可选):在声明变量的同时,你还可以选择为变量赋予一个初始值。语法格式为 数据类型 变量名 = 初始值;,例如:

int age = 25;
float salary = 5000.50;
char initial = 'J';

上述代码声明并初始化了三个变量,age 的初始值为 25, salary 的初始值为 5000.50, initial 的初始值为 'J'。

(变量的命名要遵循一定的规则,如只包含字母、数字和下划线,且不能以数字开头等。)

  • 变量的分类:

  1. 全局变量(Global Variables):全局变量是在函数外部或者源文件的顶端定义的变量,它可以被程序中的所有函数访问。全局变量的作用域是整个程序。

  2. 局部变量(Local Variables):局部变量是在函数内部定义的变量,它的作用域被限制在所属的函数内部。局部变量只能在定义它的函数内部使用。

以一段代码为例:

#include<stdio.h>
int a = 2022;
int main() {
	int b =2023;
	printf("%d\n", a);
	printf("%d\n", b);
	return 0;
}

其中 int a 就是全局变量, int b 就是局部变量。 

如果当局部变量和全局变量同名时,优先使用局部变量。

  • 算术操作符:

C语言中常见的算术操作符包括:

加法操作符(+):用于将两个数相加。

减法操作符(-):用于将第二个数从第一个数中减去。

乘法操作符(*):用于将两个数相乘。

除法操作符(/):用于将第一个数除以第二个数。

取模操作符(%):用于计算两个数相除后的余数。

自增操作符(++):用于将变量的值增加1。

自减操作符(--):用于将变量的值减少1。

  • 赋值操作符:

  1. 连续赋值:

    在C语言中,连续赋值是一种将多个变量同时赋予不同的值的方式。

    例如,假设我们有两个整数变量a和b,并且我们想要将a的值赋给b,同时将b的值加1。通过连续赋值,我们可以这样写:

    b = a = 5;
    b++;
    

    在这里,首先将a的值赋给b,因此a和b都被设置为5。然后,对于b的值执行自增操作,b的值变为6。

  • 复合赋值符:

    在C语言中,复合赋值符是一种结合了赋值操作和其他操作的简化语法。它可以同时对变量进行某种操作和赋值操作,以减少代码的书写。

    以下是常见的C语言复合赋值符:

  1. +=
    这个符号表示加法赋值操作,即将右侧的操作数与左侧的变量相加,并将结果赋值给左侧的变量。例如:

    int a = 5;
    a += 3;   // 相当于 a = a + 3;
    // 现在 a 的值为 8
    
  2. -=
    这个符号表示减法赋值操作,即将右侧的操作数从左侧的变量中减去,并将结果赋值给左侧的变量。例如:

    int a = 10;
    a -= 4;   // 相当于 a = a - 4;
    // 现在 a 的值为 6
    
  3. *=
    这个符号表示乘法赋值操作,即将右侧的操作数与左侧的变量相乘,并将结果赋值给左侧的变量。例如:

    int a = 3;
    a *= 2;   // 相当于 a = a * 2;
    // 现在 a 的值为 6
    
  4. /=
    这个符号表示除法赋值操作,即将左侧的变量除以右侧的操作数,并将结果赋值给左侧的变量。例如:

    int a = 10;
    a /= 5;   // 相当于 a = a / 5;
    // 现在 a 的值为 2
    
  5. %=
    这个符号表示取模赋值操作,即将左侧的变量除以右侧的操作数得到余数,并将结果赋值给左侧的变量。例如:

    int a = 13;
    a %= 5;   // 相当于 a = a % 5;
    // 现在 a 的值为 3
    
  • 单目操作符:++,--,+,-

  1. 前置++、--:都是先+、-1,然后再使用
  2. 后置++、--:都是先使用,然后再+、-1
  • 强制类型转换:

在C语言中,可以使用强制类型转换(也称为类型转换或类型转换运算符)将一个数据类型转换为另一个数据类型。强制类型转换的一般语法如下:

(type) expression

其中,type是要将expression强制转换为的目标数据类型。下面是一些示例:

将整数转换为浮点数:

int num = 10;
float result = (float) num;

将浮点数转换为整数:

float num = 3.14;
int result = (int) num;

将字符转换为整数:

char ch = 'A';
int result = (int) ch;

需要注意的是,类型转换应该谨慎使用,通常只有在必要的情况下才应该进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值