比特鹏哥2-数据类型和变量【自用笔记】

news/2025/2/6 4:42:26/

比特鹏哥2-数据类型和变量【自用笔记】

      • 1.数据类型介绍
        • 字符,整型,浮点型,布尔类型
      • 2.signed 和unsigned
      • 3.数据类型的取值范围
        • sizeof 展示字节大小--- 计算机中单位:字节
      • 4.变量 常量
        • 4.1 变量
            • 创建变量(数据类型 变量名)
            • 创建变量的时候可以进行初始化
          • 变量:全局变量 /局部变量
          • 变量的使用
          • 变量的作用域和生命周期
        • 4.2 常量
          • const修饰的常变量
          • define定义的标识符常量
          • 枚举常量:可以一一列举
      • 5.算术操作符:+、-、*、/(除法)、%(取模)---【双目操作符】
        • 5.1 /(除法)
        • 5.2 % (取模)
      • 6.赋值操作符:=和复合赋值
      • 7.单目操作符:++、--
        • 7.1 ++:前置++,后置++
        • 7.2 --:前置--,后置--
          • 单目操作符的sizeof
          • 单目操作符:~(按二进制位取反)
      • 8.强制类型转换
      • 9.scanf和printf介绍

1.数据类型介绍

在这里插入图片描述

%d  -打印整型
%c  -打印字符
%f  -打印浮点数字 -小数
%s  -打印字符串
%p  -打印地址

字符,整型,浮点型,布尔类型

//字符:charchar ch='A'printf ("%c\n",ch)
//整型 :短整型  整型  长整型  ///短整型 short [int], [signed] short [int], unsigned short [int] 
///整型 int ,  [signed] int, unsigned int
///长整型 long [int],  [signed] long [int], unsigned long [int]short int  q = 5printf ("%d/n",q)int  w = 5printf ("%d/n",w)long  e= 5printf ("%d/n",e)
//浮点型 float,double,long double
float f = 5.0printf ("%f/n",f)
//字符型 char, [signed] char ,  unsigned char
float f = 5.0printf ("%f/n",f)
//布尔类型:0表示假 非0表示真
_Bool
布尔类型需要使用头文件 <stdbool.h>
布尔类型变量的取值:true 或者  false

2.signed 和unsigned

C语言使用 signed 和 unsigned 关键字修饰字符型和整型类型的。
signed 关键字,表示一个类型带有正负号,包含负值;
unsigned 关键字,表示该类型不带有正负号,只能表示零和正整数。unsigned int = int![请添加图片描述](https://img-blog.csdnimg.cn/1e9eb009883f41de880de0ee189a32ac.png)

3.数据类型的取值范围

在这里插入图片描述
字节

sizeof 展示字节大小— 计算机中单位:字节

在这里插入图片描述
计算机中单位:字节
bit 比特位:存放一个二进制位
Byte 字节:1 byte = 8 bit
kb:1 kb =1024 bit

4.变量 常量

int age = 20;
float weight = 95.6f; //防止出现警告

4.1 变量

创建变量(数据类型 变量名)

在这里插入图片描述

创建变量的时候可以进行初始化

在这里插入图片描述

变量:全局变量 /局部变量
 全局变量:定义在({})以外的变量局部变量:定义在({})以内的变量------作用域:局部变量所在的局部范围
int a= 100; //全局变量
int main ()
{
int b = 20; //局部变量
}

/// 全局变量与局部变量可以同时存在,但当两者名字一样的,局部变量>全局变量。
// 建议全局变量与局部变量的名称尽量不要相同。

内存的三个区域: 栈区,堆区,静态区
在这里插入图片描述

变量的使用
 //计算两个数的和int num1 = 0;int num2 = 0;scanf("%d%d",&num1,&num2);int sum = 0;// c语言规定,变量要定义在当前代码块的最前面【最好就是把这句话写到定义的位置】sum =num1+num2;printf("sum = %d/n",sum);return 0;//输入数据--使用输入函数//输入函数: scanf("%变量类型”,&变量名称)
变量的作用域和生命周期

作用域:

	全局变量的作用域是整个工程。局部变量的作用域是变量所在的局部范围。

生命周期:

	全局变量的生命周期:整个程序的生命周期局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。

4.2 常量

const修饰的常变量
//const 后,num后续不可以修改。
const int num =4;
define定义的标识符常量
#define Max 10 //define定义的标识符常量int main(){
printf("%d\n",MAX);
return  0;
}
枚举常量:可以一一列举
//性别:男,女,
//三原色:红、黄、蓝
//星期: 1,2,3,4,5,6,7enum Sex
{
MALE;
FEMALE;
}int  main()
{
printf("%d\n",MALE);
printf("%d\n",FEAMALE);return 0;
}>>>>>>输出结果:
0
1

5.算术操作符:+、-、*、/(除法)、%(取模)—【双目操作符】

5.1 /(除法)

除法两端都是整数,结果也只能是整数
除法两端至少有一个hi浮点数,结果才会出现

5.2 % (取模)

运算符%表示求模运算,即返回两个整数相除的余值。这个运算符只能用于整数,不能用于浮点数。
负数求模的规则是,结果的正负号由第一个运算数的正负号决定。

6.赋值操作符:=和复合赋值

从右向左赋值

7.单目操作符:++、–

7.1 ++:前置++,后置++

前置++:先++,后使用
后置++:先使用,再++
//后置++:先使用,再++
int main(){int a = 10;int b = a++;printf("a=%d  b=%d\n",a,b);// a= 11  b=10return 0;
}//前置++:先++,后使用
int main(){int a = 10;int b = ++a;printf("a=%d  b=%d\n",a,b);// a= 11  b=11return 0;
}

7.2 --:前置–,后置–

//后置--:先使用,再--
int main(){int a = 10;int b = a--;printf("a=%d  b=%d\n",a,b);// a= 9  b=10return 0;
}//前置--:先--,后使用
int main(){int a = 10;int b = --a;printf("a=%d  b=%d\n",a,b);// a= 9  b=9return 0;
}
单目操作符的sizeof

在这里插入图片描述

单目操作符:~(按二进制位取反)

在这里插入图片描述
在这里插入图片描述

8.强制类型转换

()类型
int a =3.14 //a是int类型,3.14是double类型,两边类型不一样,会报警。为了消除报警int a =(int ) 3.14 //进行强制类型转换。

9.scanf和printf介绍

scanf

	vs认为scanf函数不安全,考虑使用scanf_s替换解决办法:①在当前代码的第一个加上:#define   _CRT SECURE NO_WARNINGS 1②#define  _CRT SECURE NO_WARNINGS 1
#define _CRT_SECURE_NO_WARNINGS 1

http://www.ppmy.cn/news/1017373.html

相关文章

一套逻辑轻松且智能解决PyQt中控件数值验证的问题

在PyQt开发中&#xff0c;时常需要对控件的值进行校验&#xff0c;如需要校验QCheckBox是否被选中&#xff0c;QLabel是否校验值是否为空等等。在复杂的业务场景下&#xff0c;这类控件如果数量很多&#xff0c;逐个校验就显得麻烦&#xff0c;需要一一获得控件名称&#xff0c…

FastAPI 构建 API 高性能的 web 框架(二)

上一篇 FastAPI 构建 API 高性能的 web 框架&#xff08;一&#xff09;是把LLM模型使用Fastapi的一些例子&#xff0c;本篇简单来看一下FastAPI的一些细节。 有中文官方文档&#xff1a;fastapi中文文档 假如你想将应用程序部署到生产环境&#xff0c;你可能要执行以下操作&a…

Python 程序设计入门(016)—— 字典的操作(3):字典的排序

Python 程序设计入门&#xff08;016&#xff09;—— 字典的操作&#xff08;3&#xff09;&#xff1a;字典的排序 目录 Python 程序设计入门&#xff08;016&#xff09;—— 字典的操作&#xff08;3&#xff09;&#xff1a;字典的排序一、sorted() 函数二、直接对字典排序…

JavaScript:模块化【CommonJS与ES6】

在 JavaScript 编程中&#xff0c;随着项目的复杂性增加&#xff0c;代码的组织和管理变得至关重要。模块化是一种强大的编程概念&#xff0c;它允许我们将代码划分为独立的模块&#xff0c;提高了可维护性和可扩展性。本文将详细介绍 CommonJS 和 ES6 模块&#xff0c;帮助你理…

OKHTTP缓存问题记录

使用okhttp的缓存功能 okhttp有一个功能就是适配http协议里面cache-control头 但是在实际使用的过程中&#xff0c;发现非文本内容&#xff0c;如果不对Response中的inputstream读取&#xff0c;就不会缓存下来 比如使用如下代码读取后才能缓存到cache目录 ResponseBody bod…

【源码分析】Nacos如何是现在CP模式下基于Raft协议的节点注册逻辑

而对于持久节点&#xff0c;有一个Raft协议的实现 我们知道Raft算法作为一个CP协议&#xff0c;它通过的是Leader节点来向各个节点进行数据的同步。 所以会先判断当前节点是否是Leader节点&#xff0c;如果不是则将请求转发到Leader节点进行处理。 而如果就是Leader节点&am…

20230809在WIN10下使用python3将DOCX文件转换为TXT文件

20230809在WIN10下使用python3将DOCX文件转换为TXT文件 2023/8/9 11:38 python docx txt https://blog.51cto.com/u_16175446/6620474 如何实现Python读取word内容转为TXT的具体操作步骤 如何实现Python读取word内容转为TXT的具体操作步骤 原创 mob649e81576de12023-07-04 14:0…

使用 `nmcli` 在 CentOS 8 上添加永久路由

CentOS 8 使用 NetworkManager 作为默认的网络管理工具&#xff0c;因此我们可以使用 nmcli 工具来实现相同的目标。使用 nmcli 可以更加直观地管理路由&#xff0c;并且更符合 CentOS 8 的默认网络管理方式。 以下是使用 nmcli 在 CentOS 8 上添加永久路由的步骤&#xff1a;…