首页 > 其他分享 >C语言的数据类型和变量

C语言的数据类型和变量

时间:2025-01-17 22:59:49浏览次数:3  
标签:变量 int 数据类型 unsigned C语言 类型 sizeof

在C语言中,数据类型主要分为两大类,一类是内置类型,另一类是自定义类型,今天主要来说一下内置类型

一、数据类型

1、字符型

字符型:char(是character的缩写)signed char表示有符号的字符型,unsigned 插入表示无符号的字符型,

2、整型

3、浮点型

浮点型主要有三种,分别是float(单精度浮点型)、double(双精度浮点型)、long double(更长的浮点型)

4、布尔类型

C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。
在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。

(创建时可以小写b)

需要注意的是:布尔类型的使用必须包含头文件<stdbool。h>

布尔类型的变量的取值是true或者false

5、数据类型的长度

每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不同,存储的数据范围就有所差异。

6、sizeof

sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof的操作符数的类型⻓度的,单位是字
节。sizeof 操作符的操作数可以是类型,也可是变量或者表达式。

sizeof 的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号的。
sizeof 后边的表达式是不真实参与运算的,根据表达式的类型来得出⼤⼩。
sizeof 的计算结果是 size_t 类型的。

 sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给
系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统中,返回值的类型有可能是
unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long ,
对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。
C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返
回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是
unsigned long long 。

例如:

学会了sizzeof的使用,那我们就可以计算一些数据类型的长度

7、signed和unsigned

C 语⾔使⽤ signed 和 unsigned 关键字修饰 字符型和整型 类型,signed表示“有符号的”,unsigned表示“无符号的”

signed int可能存正数也可能存负数,而unsigned int 只能存0和正数

interesting类型默认带有正负号,也就是int等同于signed int

unsigned int ⾥⾯的 int 可以省略

这里再补充一下,%d打印的是有符号类型,而%u打印的是无符号类型

二、变量

1、创建变量

上面讲的类型是用来创建变量的,先来说一下什么是变量吧,c语言中把经常变化的值成为变量,把不变的值称为常量,变量创建的语法形式是这样的:

例如 int num; int age;short n; char m;

变量创建的本质是:向内存申请空间,申请多大的空间取决于变量类型

2、变量的初始化 

变量在创建时给一个初始值,就叫初始化,

例如 int a=0; char c='m';

3、变量的分类

变量分为全局变量和局部变量,大家可以理解为,全局变量是在大括号外创建的变量,而局部变量是在大括号内创建的变量

举个例子

如图所示,a就是全局变量,b就是局部变量

那么这时候可能会有人要问,如果全局变量和局部变量是同一个字母,那么编译器会按哪个变量处理呢?

其实当局部变量和全局变量同名的时候,局部变量优先使⽤

如图所示,最后打印在屏幕上的a是5,而不是10,所以局部变量优先使用,

但是,在平常写代码的时候,我们还是要尽量避免变量名重复的情况,以免出现判断失误

标签:变量,int,数据类型,unsigned,C语言,类型,sizeof
From: https://blog.csdn.net/2401_87402888/article/details/145102115

相关文章

  • C语言数据类型和变量(中)
    变量1.变量的创建上一篇我们所讲的是数据类型,而类型用来干什么的-创建变量的,在C语⾔中,我们把经常变化的值称为变量,不变的值称为常量,如intage;便是整型变量。变量在创建的时候就给⼀个初始值,就叫初始化。如charc='w';2.变量的分类全局变量:在⼤括号外部定义的变量就是全......
  • Anaconda安装教程及环境变量添加;Anaconda环境管理;Anaconda包管理;Anaconda常用命令
    Anaconda安装教程及环境变量添加;Anaconda常用命令什么是AnacondaAnaconda的主要特点Anaconda安装方法下载Anaconda在Windows上安装在macOS/Linux上安装Anaconda环境管理常用环境管理命令Anaconda包管理常用包管理命令使用Anaconda的Python检查Python......
  • C语言进阶复习
    今天回顾了数组,二维数组,多维数组,函数等知识点。做一个简单的练习从终端接收一个数,封装一个函数,判断该数是否为水仙花数。首先水仙花数是一个三位数,且每位数上的立方和值为该数本身。对于这个问题可以画一个流程图。根据流程图编写下列函数//判断一个数是不是水仙花数,是则......
  • C语言新手入门---分支与循环(下)
    前言&概括鼠鼠也是才学C语言,屏幕前的各位多指教,鼠鼠耐骂。浅浅讲一下怎么使用C语言三种循环结构的语句:whilefordo…while1、while循环(1)if语句和while语句在形式上的对比两者在语法结构上基本都是一致的,再度提醒if无{}只能管理紧邻的一个句子。if(exp1){语句}while......
  • C语言新手入门---分支与循环(上)
    前言鼠鼠也是才学C语言,屏幕前的各位多指教,鼠鼠耐骂。编程里的分支结构要理解其实也就是数学里的树状图,把所需要的情况一点点根据数据分类好,再用编程语言的语法写好就行。一、if语句1、if本身用法如果判断表达式的结果为真(也就是表达式内容正确(或者说表达式返回的值非0),......
  • C语言和C++的区别及面向对象的了解
    C语言和C++的区别语言类型:C语言:是一种面向过程的编程语言,主要关注算法和数据结构,强调对计算机硬件的直接操作和程序的执行效率。C++:是一种面向对象的编程语言,它在C语言的基础上扩展了面向对象的特性,如类、对象、继承、多态等,使得程序的结构更加清晰,可维护性和可扩展......
  • 猴子偷桃问题c语言解决
    问题:猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第10天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。在得到正确结果后,修改题目,改为......
  • Stacking集成学习算法的多变量时序预测 Matlab代码
    Stacking集成学习算法的多变量时序预测Matlab代码Matlab2023目录Stacking集成学习算法的多变量时序预测Matlab代码Matlab2023预测结果评价指标基本介绍程序设计参考资料预测结果评价指标训练集数据的R2为:0.99805测试集数据的R2为:0.98351训练集数据的MAE为......
  • 20.C语言多文件编译与管理技巧
    目录1.前言2.重复加载3.extern4.static5.编译策略6.make1.前言本篇原文为:20.C语言多文件编译与管理技巧。更多C++进阶、rust、python、逆向等等教程,可点击此链接查看:酷程网一个软件项目往往包含多个源码文件,编译时需要将这些文件一起编译,生成一个可执行文件。假......
  • C语言break和continue用法详解(跳出循环,新手必看)
    使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。C语言break关键字在我原创教程里的《C语言switchcase语句》一文中,我讲了:用 break来跳出switch语句。当break关键字用于while、for循环时,会终止循......