C语言——数据类型

news2025/1/31 3:06:46

1. 变量

1.1变量的概念

变量就是在程序中可以发生变化的量,变量有类型。

变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。(1字节=8位)

1.2定义格式

存储类型 数据类型 变量名;

例如:(auto) int a;

  • 变量名是标识符,要符合标识符命名规则。

  • 存储类型:变量存储的位置。

  • 数据类型包含:名字 字节 取值范围

类型存储大小值范围
char字符类型1 字节-2^7 到 (2^7-1)
unsigned char无符号字符类型1 字节0 到 (2^8-1)
int整数类型4 字节-2^31 到 (2^31-1)
unsigned int无符号整数类型4 字节0 到 (2^32-1)
short短整型2 字节-2^15 到 (2^15-1)
unsigned short无符号短整形2 字节0 到 (2^16-1)
long长整型4 字节-2^31 到 (2^31-1)
unsigned long无符号长整形4 字节0 到 (2^32-1)
float单精度浮点型4字节有效数据6-7位
double双精度浮点型8字节有效数据15-16位

p96DLL9.md.png

p96saNt.md.png

1.3 初始化格式**

(1)可以定义的时候初始化

​ int a=0;

(2)先定义后初始化

​ int a;

​ a=0;

1.4 局部变量和全局变量

(1)生命周期:变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。也就是存活的周期时间。时间维度。

(2)作用域:变量可以起作用的范围。空间维度。

(3)内存的五个区域:

p96rVot.md.png

📢局部变量和全部变量的区别:

局部变量全局变量
定义位置函数体内部函数体外部
存储位置栈区全局区
生命周期同函数体共存亡同整个程序共存亡
作用域作用于函数体内部作用于整个程序
初值未初始化时,是一个随机值未初始化时,值为0

例子:

#include <stdio.h>
int b;
int main(int argc, const char *argv[])
{
	int a;
	printf("%d\n",a);
	printf("%d\n",b);
	return 0;
}

2. 常量

2.1 概念

程序运行中不会发生变化的量叫常量,存放在常量区。

2.2 分类

2.2.1 字符型常量

类型为char,从ASCII表中找到的字符都是字符型常量,不可以改变。用单引号括起来的就是字符常量,例如‘A’。

类型存储大小值范围
char字符类型1 字节-128 到 127
unsigned char无符号字符类型1 字节0 到 255
signed char带符号字符类型1 字节-128 到 127

原码、反码和补码:

  • (1)最高位表示符号位,正数时0,负数是1。

  • (2)正数的原码、反码和补码都一样。

  • (3)负数要用补码来计算:

**原码 **就是直接在数值前面加上符号表示

反码 等于原码的符号位不变,其他位按位取反

补码 等于反码加一

例如:-5

原码:1000 0101
反码:1111 1010
补码:1111 1011

用 ’ ’ 括起来的就是字符常量:

‘a’ 字符a

‘\0’ 空字符

‘\n’ 换行

用法:

char c='b';
	char a='\101';
	printf("%c\n",'A');
	printf("%c\n",65);
	printf("%c\n",'\x42');
	printf("%c\n",c);
	printf("%c\n",a);
	printf("%c\n",a+32);

👉因为C规定转义字符 ‘\x41’ 中\是转义字符引导符,后跟一个x表示x后面的数字是十六进制表示法,用’ '括起来表示一字节ASCII码。\转义符后面加数字代表转义成八进制的字符,后面的数字是八进制。

2.2.2 字符串常量

用“”括起来的就是字符串,例如“hello”,字符串最后跟一个’\0’🚨。

例如:

printf("%s\n","hello");

2.2.3 整型常量

整型常量就是类型为整数的常量,包括从负数到零到正数的所有整数。

可以用二进制、八进制、十进制和十六进制表示。

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int a=10;//把整型常量赋值给整型变量
	printf("%d\n",a);
	printf("%d\n",10); //十进制
	printf("%d\n",0b1111); //二进制
	printf("%d\n",010); //八进制
	printf("%d\n",0xF); //十六进制
	return 0;
}

2.2.4 浮点型常量

浮点型常量就是类型为浮点数的常量,包括从负数到零到正数的所有浮点数。有float型和double型。

2.2.5 指数常量

即用科学计数法进行数据的表示。

例如:👇

300000000=3*10^8→3e8

0.0000012=1.2*10^-6→1.2e-6

例子:

float f=80000;
	printf("%e %e\n",0.0000012,f);

2.2.6 标识常量(宏定义)

宏定义:起到标识作用

  • (1)只是单纯的文本替换,在预处理的时候进行的

  • (2)遵循标识符命名规则

  • (3)一般用大写标识

格式:

#define 宏名 常量或表达式

📢特点:单纯的文本替换,不能手动运算(原样替换

例子:

#include <stdio.h>
#define ONE 1
#define TWO ONE+ONE
#define THREE ONE+TWO
int main(int argc, const char *argv[])
{
	printf("%d\n",THREE);

	return 0;
}//输出结果为:3

📢如果一个串长于一行,可在行尾用反斜线 “\” 续行

练习:

#define N 2
   #define M N+3 //M 2+3
   #define NUM N+M/2+1 //2+2+3/2+1=6
   void main()
   {
      int a = NUM;     
      printf("%d\n",a);
   }//输出结果为:6

EE);

return 0;

}//输出结果为:3


📢如果一个串长于一行,可在行尾用反斜线 “\” 续行

练习:

```c
#define N 2
   #define M N+3 //M 2+3
   #define NUM N+M/2+1 //2+2+3/2+1=6
   void main()
   {
      int a = NUM;     
      printf("%d\n",a);
   }//输出结果为:6

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521271.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity2d光源的使用

将项目升级为2dURP 安卓UPR插件 新建URP配置文件 (只有完成第一步操作之后才会有创建的选项) 右键>Create>Rendering>URP Asset (with 2D Renderer) 修改Project Settings(项目设置里面的相关设置) Edit>Project Settings>Graphics>设置Scriptable R…

组件弹框传值

1.引入组件 // 编辑干部弹窗 import edit from "../../components/rm/edit.vue"; 2.注册组件 components: {edit,}, 3.使用组件 <edit ref"edit" :visible.sync"editVisible" :rmid"UpFileData.id" :width"editWidth"…

股票量价关系基础知识4

价量配合与价量背离 在股票市场中&#xff0c;价的变化会引起量的变化&#xff0c;量的变化又会引起价的波动。从整体来看&#xff0c;价量关系主要存在两种情况&#xff1a;价量配合和价量背离。 一、价量配合 &#xff08;一&#xff09;基本概念 价量配合&#xff0c;是指股…

leecode255——二叉树的所有路径代码及示例

&#x1f50e;递归法&#xff1a; 既然是递归法&#xff0c;递归三部曲&#xff1a; &#xff08;1&#xff09;确定终止条件: 对二叉树的路径&#xff0c;遍历到叶子节点结束。本题要找到叶子节点才开始处理后续流程&#xff0c;那什么时候算是找到了叶子节点&#xff0c;即…

尚硅谷JUC

文章目录 1. 什么是JUC1.1 JUC简介1.2 进程和线程基本概念2.1 Synchronized2.1.1 Synchronized关键字2.1.2 synchronized实现三个线程卖30张票 2.2 Lock2.2.1 什么是Lock2.2.2 使用Lock实现买票功能2.2.3 两者的区别 3. 线程间通信及定制化通信3.1 使用synchronized实现线程之间…

【Windows线程开发】Windows线程同步技术

我们在上一章节中讲解了关于Windows的线程基础&#xff0c;相信大家已经对线程有了基本的概念。这一章节中&#xff0c;我们来讲讲线程同步技术&#xff0c;包括加锁技术&#xff08;原子锁和互斥体&#xff09;和事件&#xff0c;信号灯。 文章目录 一.原子锁二.互斥体三.事件…

SpringCloud-网关 Gateway

网关Gateway 一、网关初识二、网关的使用1.创建项目并引入依赖2.编写网关配置3.启动服务并测试 三.查看网关路由规则列表四.路由服务的负载均衡五.断言和过滤1.断言Predicate1.1.The Path Route Predicate Factory(路径断言工厂&#xff09;1.2.The After Route Predicate Fact…

【27】linux进阶——rpm软件包的管理

大家好&#xff0c;这里是天亮之前ict&#xff0c;本人网络工程大三在读小学生&#xff0c;拥有锐捷的ie和红帽的ce认证。每天更新一个linux进阶的小知识&#xff0c;希望能提高自己的技术的同时&#xff0c;也可以帮助到大家 另外其它专栏请关注&#xff1a; 锐捷数通实验&…

基于SSM+MySQL的支教管理系统

目录 1、系统介绍 2、系统功能展示 3、运行环境 4、运行效果 5、运行配置 6、下载地址 1、系统介绍 本系统是基于SSM(SpringSpringMVCMyBatis)框架开发的支教管理系统&#xff0c;系统共有超级管理员&#xff0c;系统管理员&#xff0c;支教学校&#xff0c;志愿者这四大…

我的新书上架了!

talk is cheap&#xff0c;show you my book&#xff01; 新书《从0开始学ARM》终于在各大平台上架了&#xff01;&#xff01; 一、关于本书 1. 本书主要内容 ARM体系架构是目前市面上的主流处理器体系架构&#xff0c;在手机芯片和嵌入式芯片领域&#xff0c;ARM体系架构…

前端架构师-week5-命令行交互原理

目录 加餐&#xff1a;命令行交互原理 学习路径 readline 源码分析 如何开发命令行交互列表 实现原理 架构图 本章学习路径和学习目标 readline 的使用方法和实现原理 高能&#xff1a;深入讲解 readline 键盘输入监听实现原理 秀操作&#xff1a;手写 readline 核心实…

MySQL---控制流函数、窗口函数(序号函数、开窗聚合函数、分布函数、前后函数、头尾函数、其他函数)

1. 控制流函数 格式 解释 案例 IF(expr,v1,v2) 如果表达式 expr 成立&#xff0c;返回结果 v1&#xff1b;否则&#xff0c;返回结果 v2。 SELECT IF(1 > 0,正确,错误) ->正确 IFNULL(v1,v2&#xff09; 如果 v1 的值不为 NULL&#xff0c;则返回 v1&#xff…

JVM垃圾收集器(一)

目录 1、如何考虑 GC 2、如何确定一个对象“死去” 3、分代收集理论 4、垃圾回收算法 5、HotSpot的算法实现细节 1、如何考虑 GC 垃圾收集&#xff08;Garbage Collection&#xff0c;GC&#xff09;的历史比Java更久远&#xff0c;1960年诞生于MIT。 GC 需要考虑的三件事…

UNIAPP实战项目笔记72 提交订单到选择支付方式的前后端交互

UNIAPP实战项目笔记72 提交订单到选择支付方式的前后端交互 思路 购物车确认订单,跳转到订单确认界面确认支付后清除购物车对应id的数据 实例截图 清空购物车数据后 代码 前端代码 order.js export default{state:{// 订单号orderNumber:},getters:{},mutations:{initOr…

数字化转型浪潮下,如何选择适合企业的低代码平台

近日&#xff0c;艾瑞咨询发布了《数字新生态&#xff1a;中国低代码厂商发展白皮书》&#xff08;以下简称“报告”&#xff09;&#xff0c;在该报告中&#xff0c;艾瑞咨询对中国当前的低代码市场进行了非常细致的解构&#xff0c;并针对当前企业数字化转型&#xff0c;对低…

电阻传感器工作原理

金属随着温度变化&#xff0c;其电阻值也发生变化。 对于不同金属来说&#xff0c;温度每变化一度&#xff0c;电阻值变化是不同的&#xff0c;而电阻值又可以直接作为输出信号。 电阻共有两种变化类型 正温度系数 温度升高 阻值增加 温度降低 阻值减少 负温度系数 温…

【一起啃书】《机器学习》第七章 贝叶斯分类器

文章目录 第七章 贝叶斯分类器7.1 贝叶斯决策论7.2 极大似然估计7.3 朴素贝叶斯分类器7.4 半朴素贝叶斯分类器7.5 贝叶斯网7.6 EM算法 第七章 贝叶斯分类器 7.1 贝叶斯决策论 对分类任务来说&#xff0c;在所有相关概率都已知的理想情形下&#xff0c;贝叶斯决策论考虑如何基于…

k8s学习-CKS真题-利用AppArmor进行应用行为限制

目录 题目环境搭建解题模拟题参考 题目 Task 在 cluster 的工作节点 node02 上&#xff0c;实施位于 /etc/apparmor.d/nginx_apparmor 的现有 APPArmor 配置文件。 编辑位于 /cks/KSSH00401/nginx-deploy.yaml 的现有清单文件以应用 AppArmor 配置文件。 最后&#xff0c;应用清…

UE4及Airsim安装时遇到的问题及解决办法

UE4及Airsim安装时遇到的问题及解决办法 目录 UE4及Airsim安装时遇到的问题及解决办法前言UE4下载慢解决方法 Airsim编译过程中提示&#xff1a;无法打开包括文件: “Eigen/Dense”: No such file or directory [D:\software\Visual_studio2022\2022Community\AirSim\Air解决办…

C语言——运算符和表达式

所谓表达式就是指由运算符、运算量和标点符号组成的有效序列&#xff0c;其目的是说明一个计算过程。表达式可以独立成语句&#xff1a;表达式; 运算符按功能分为&#xff1a;算术运算、赋值运算、关系运算、逻辑运算、位运算以及其他运算符 1. 算术运算符&#xff1a; - * / %…