首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【C语言入门】C语言的相关基本概念3

【C语言入门】C语言的相关基本概念3

作者头像
良木生香
发布2026-01-09 14:17:48
发布2026-01-09 14:17:48
1670
举报

一、C语言的数据类型

1.数据类型的介绍

人与类聚,物与群分。C语言中,提供了丰富的数据类型来描述生活中的各种类型,所谓的类型,就是将具有相同特征的数据归类在一起。使用整型类型来描述整数,使用浮点型来描述小数,使用字符类型来描述字符。下面是数据类型的思维导图:

接下来我就一个一个介绍吧~~

1.字符型:

1.char //对应英文就是character 2.[signed] char //无符号的 3.unsigned char //有符号的

2.整型:

//整数 int - integer //短整型 1.short [int] 2.[signed] short [int] 3.unsigned short[int] //整型 4.int 5.[signed] int 6.unsigned int //长整型 7.long [int] 8.[signed] long [int] 9.unsigned long [int] //在c99中新引入的long long,更长整型 10.long long [int] 11.[signed] long long [int] 12.unsigned long long [int]

3.浮点型

1.float 2.double 3.long double

4.布尔型

bool

2.signed与unsigned关键字

在刚才介绍的数据类型中,我们可以看到有 signed 和 unsigned 这样的字眼,那么我们现在就来介绍一下这两个关键字

C语言用signed和unsigned这两个关键字来修饰字符型整型signed:表示一个类型的数据包含正负号,带有正负值; unsigned:表示这个类型的数据不带有负号,只能表示零和正整数

对于int 类型:

对于int 类型的数据,默认带有正负号,即signed int == int , 但是想要只表示非负整数的话,就要带上符号,即 unsigned int

应为在实际的编码中,我们使用正整数的情况会多于负整数,那么这时候使用unsigned的好处就体现出来了,举个例子吧

对于16位的 signed short int 这个类型,它的取值范围是: -32768 ~ 32768 而如果是 unsigned short int 这个类型,它的取值范围是: 0~65535 由此可见,在正数的情况下,使用unsigned会比signed的取值范围翻了一倍,增加了数据的容量

对于字符类型:

对于字符类型的数据,与整型类型有异曲同工之处 signed char ch //取值范围是-128 ~ 127 unsigned char ch //取值范围是 0 ~ 255

3.取值范围

上述的数据类型有这么多,特别是整型,有short 、int、 long、long long四种之多,为什么呢?

这是因为,在实际的编码中,我们可能受到内存限制或者环境的影响,可以在对应的情况下 使用恰当的数据类型,来实现代码效率的最大化

在vs2022中:

<limits.h>这个头文件说明了整型变量的具体取值范围

<flaot.h>这个头文件说明了浮点型变量的具体取值范围

二、变量

1.变量的创建

刚才我们讲解了数据的类型,就是为了给变量做铺垫。数据类型的作用是创建变量。我们将不变的量称之为常量,将需要改变的量称为变量

创建变量的格式如下:

data_type name;

| |

数据类型 变量名

例如:

代码语言:javascript
复制
int age;                    //一个名为age的整型变量

float num_input;     //一个名为num_input的浮点型变量

char ch;                   //一个名为ch的字符型变量

如果在变量名的后面赋值,那这个操作就叫做变量的初始化:

代码语言:javascript
复制
int age = 10;

double num_input = 23;

char ch = 'X';

2.变量的分类

对于变量,C语言中也有分类:全局变量局部变量

全局变量:

全局变量,在大括号之外定义的变量,其使用的范围是整个工程中。

代码语言:javascript
复制
#include<stdio.h>

int Global_Variable = 520;     //这个就是全局变量

int main()
{
	printf("%d", Global_Variable);
	return 0;
}

这里的Global_Variable就是全局变量。

局部变量:

局部变量,在大括号之内定义的变量,其使用的范围仅限于该大括号内

代码语言:javascript
复制
#include<stdio.h>

int main()
{
	int Local_Variable = 520;       //这个就是局部变量
	printf("%d", Local_Variable);
	return 0;
}

这里的Local_Variable就是局部变量。

我用下面这个代码来更好的区分他们吧:

代码语言:javascript
复制
#include<stdio.h>

int Global_Variable = 520;    //这个是全局变量

void test_func()
{
	int Local_Variable = 51520;      //这个是局部变量
	printf("%d\n", Local_Variable);
}

int main()
{
	test_func();
	printf("%d\n", Global_Variable);
}

运行结果为:

但如果,我将代码改成这样:

代码语言:javascript
复制
#include<stdio.h>

int Global_Variable = 520;    //这个是全局变量

void test_func()
{
	int Local_Variable = 51520;      //这个是局部变量
	printf("%d\n", Local_Variable);
}

int main()
{
	//test_func();
	printf("%d\n", Global_Variable);
}

也就是注释掉test_func,来放大局部变量不在此区域的效果,那么运行结果为:

这样就能知道全局变量在整个工程中都能使用,但是局部变量这能在其大括号内使用

三、操作符

1.算术操作符

算术操作符,就是我们平常使用的加减乘除,分别对应 + 、- 、* 、/这几个符号,这几个属于双目操作符,就是要有两个数据才能使用的操作符。

代码语言:javascript
复制
#include<stdio.h>

int main()
{
	int a = 2, b = 3, c = 9, d = 6;
	printf("%d \n", a + b);   //进行加法运算
	printf("%d \n", c - a);   //进行减法运算
	printf("%d \n", a * b);   //进行乘法运算
	printf("%d \n", c / b);   //进行除法运算
	return 0;
}

运行结果为:

在这里需要注意的是,在进行除法运算时,如果除号两边都是整数的话,那么结果也是整数,想要结果为小数,只需满足除号两边至少一个数据为浮点型即可

代码语言:javascript
复制
#include<stdio.h>

int main()
{
	int a = 3, b = 9;
	float c = 3.0, d = 9;
	printf("%d \n", b / a);
	printf("%f \n", d / c);
	return 0;
}

运行结果为:

这样就能直观地看出差异了。

还有一个运算符就是 %,求模运算符,即求余数。

代码语言:javascript
复制
#include<stdio.h>
int main()
{
    int a=6,b=4;
    printf("%d",a%b);   //结果为2,6 / 4 =1...2
    return 0;
}

其中,负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。

代码语言:javascript
复制
#include<stdio.h>

int main()
{
	printf("%d\n", 6 % 4);    //1
	printf("%d\n", -6 % -4);  //-1
	printf("%d\n", -6 % 4);   //-1
	return 0;
}

2.赋值操作符

将一个数据初始化之后,再给它一个值,就叫赋值。

代码语言:javascript
复制
int age =20;   //这里初始化为20
age = 50;      //这里再给它赋值为50,那么最后这个age变量的值就是50

也可以连续赋值:

代码语言:javascript
复制
int a = 6;
int b = 8;
int c = 0;
c = b = a + 3;//连续赋值,从右向左依次赋值。即b=a+3=9,c=b=9;,所以c最后的值为9

3.单目操作符

单目操作符,就是只对一个数据进行操作的操作符,有:++、--、+(正)、-(负)

++、--:

“++”作用是让数据自增1;分为前置++与后置++

代码语言:javascript
复制
#include<stdio.h>

int main()
{
    int a = 4;
    int b = 6;
    printf("%d\n",a++);    //输出5
    printf("%d\n",++b);    //输出4
    return 0;
}

前置++为:先使用再自增

后置++为:先自增再使用

也就是说,哪个在前面,就是哪个先发挥作用

“--”与“++”相同,就是自减1

+、-:

“+”对数据的正负值没有影响,写了也不影响 “-”对数据起到正负相反的作用,正数加上“-”变为负数,负数加上“-”变为正数。

四、强制类型转换

顾名思义,就是强制将某种类型强制转换到另一种类型

代码语言:javascript
复制
int a = 5.20    //声明变量为int,但是却初始话为浮点数,这样编译器就会报错

int a = (int)5.20  //这样就叫做强制类型转换,将浮点数强制转换到整数,只取小数的整数部分,即5,此时 a = 5;

注意,强扭的瓜不不甜,毕竟是强制转换,不在非必要的时候,尽量不要用

今天的文章就分享到这里吧~

文章是自己写的哈,有啥描述不对的、不恰当的地方,恳请大佬指正,看到后会第一时间修改,感谢您的阅读。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、C语言的数据类型
    • 1.数据类型的介绍
      • 1.字符型:
      • 2.整型:
      • 3.浮点型
      • 4.布尔型
    • 2.signed与unsigned关键字
    • 3.取值范围
  • 二、变量
    • 1.变量的创建
    • 2.变量的分类
  • 三、操作符
    • 1.算术操作符
    • 2.赋值操作符
    • 3.单目操作符
  • 四、强制类型转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档