C++研发笔记5——C语言程序设计初阶学习笔记3

        我们继续第二部分《初识C语言》的学习,上一篇笔记当中我们详细讲解了什么是C语言以及第一个C语言程序。本篇笔记中我们继续从数据类型开始学习,后面的内容还包括:数据类型 、变量与常量 、字符串+转义字符+注释 、选择语句 、循环语句 、函数 、数组 、操作符 、常见关键字 、define 定义常量和宏 、指针 、结构体。

第二部分  初识C语言

三、数据类型

/*
为什么要写代码?
答——写代码是为了解决生活中的问题
所以C语言必须要有能力来描述我们的生活
购物:网上商城——模拟现实生活中的购物(商品陈列、商品的价格、购物、结算)
当我们要描述清楚这些数据,需要非常明确的数据类型,不同的类型去描述不同的数据
*//*
那么C语言中的数据类型:
char —— 字符数据类型
short —— 短整型
int —— 整型
long —— 长整型
long long —— 更长的整型(C99中引用)
float —— 单精度浮点数
double —— 双精度浮点数
*///使用一段代码去验证每种类型的大小
#include<stdio.h>int main()
{printf("%d\n", 100); // %d 代表打印10进制的整数printf("hello\nworld");// \n 是一个转义字符,用来实现换行// sizeof 是一个操作符,用来计算内存空间的大小printf("%d\n", sizeof(char)); //实现打印输出char类型变量的空间大小printf("%d\n", sizeof(short)); //实现打印输出short类型变量的空间大小printf("%d\n", sizeof(int));  //实现打印输出int类型变量的空间大小printf("%d\n", sizeof(long)); //实现打印输出long类型变量的空间大小printf("%d\n", sizeof(long long)); //实现打印输出long long类型变量的空间大小printf("%d\n", sizeof(float)); //实现打印输出float类型变量的空间大小printf("%d\n", sizeof(double)); //实现打印输出double类型变量的空间大小return 0;
}
//以上打印的结果(1 2 4 4 8 4 8)的单位是字节,数据是存放到内存中的
//C语言规定sizeof(long) >= sizeof(int),不同编译器对sizeof(long)运行结果可能会出现不同
//理解不同变量占用的空间大小可以更合适的根据变量范围进行定义变量类型/*
计算机单位
比特 bit —— 计算机能识别的最小二进制指令(0或1)
字节 1 byte = 8bit
1 KB = 1024 byte
1 MB = 1024 KB
1 GB = 1024 MB 、TB 、PB ……
*//*
我们在VS 2022中运行上面的代码会出现C4477的警告
“printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“size_t”
因为VS 2022这款编译器的原因,我们最好将 %d 改为 %zd,这样运行起来,警告就会取消了
*/#include<stdio.h>int main()
{printf("%zd\n", sizeof(char));printf("%zd\n", sizeof(short));printf("%zd\n", sizeof(int));printf("%zd\n", sizeof(long));printf("%zd\n", sizeof(long long));printf("%zd\n", sizeof(float));printf("%zd\n", sizeof(double));return 0;
}//注意这整段代码直接从运行是会报错的,这是因为为了方便演示我使用了两个main函数
//如果我们要观察运行结果的话,将其中一段进行注释即可
//总体而言,存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
//这些值我们在编程语言中使用变量来表现。/*
创建变量的具体方法:
数据类型 变量名称 = 初始化的值;
具体的使用方法及示例我们会在下一个目题中详细的介绍
下面我简单写出几个例子
*/
char ch = 'a';
int a = 10;
long b = 100;
double c = 3.14;
float weight = 75.5f; //如果结尾不加f,系统会默认为double类型

 四、变量与常量

(一)、变量的创建与命名
/*
生活中的有些值是不变的,比如说圆周率、性别、身份证号等
也有些值是可变的,比如说年龄、体重、薪资等
C语言规定,不变的值称为常量,变的值称为变量。
*//*
· 定义变量函数的方法:
变量类型 变量名称 = 初始化的值;
我们对变量命名的时候,最好也要使用一些有意义的名称
我们创建变量的时候,一定要初始化,否则有一些编译器会报错。
· 当我们使用printf打印变量的时候:
&d 用来打印int类型
%f 用来打印float类型
&lf 用来打印double类型
*//*
关于变量的命名:
1、只能由字母(包括大写和小写)、数字和下划线( _ )组成。
2、不能以数字开头。
3、长度不能超过63个字符。
4、变量名中区分大小写的。
5、变量名不能使用关键字。
*/#include<stdio.h>int main()
{//存放一个人的年龄10岁int age = 10;printf("%d\n", age);//存放一个人的薪资是5000float salary = 5000.0f;printf("%f\n", salary);//如果想限制小数点后位数,可以如下表示/*语法规定 %.xf 或者 %.xlf 中的 x 可以规定小数点后保留几位小数如果不做设置,则默认小数点后保留六位小数*/printf("%.2f\n", salary);//也可以使用double去定义浮点数,数据结尾就无需f了double money = 5000.0;printf("%.2lf\n", money);printf("%.8lf\n", money);char ch = 'w';  //定义一个字符类型int a = 0;  //定义一个整型并进行初始化a = 10;  //修改这个整型的值printf("%d\n", a);// 打印的值为10,实现了变量值的修改return 0;
}
(二)、变量的分类及基础使用
#define _CRT_SECURE_NO_WARNINGS//变量分为局部变量和全局变量#include<stdio.h>int num1 = 1000; // 全局变量
int num = 10; //全局变量int main()
{int num2 = 1; // 局部变量int num = 0; // 和全局变量名字一样的局部变量printf("num1 = %d\n", num1);//打印一个全局变量printf("num2 = %d\n", num2);//打印一个局部变量//当全局变量和局部变量名称相同的时候,打印局部变量优先//当然当我们定义变量的时候,建议不要全局变量和局部变量冲突printf("num = %d\n", num);return 0;
}//变量的简单使用——实现实现两个整数的相加#include<stdio.h>int main()
{int num1 = 0; //定义第一个变量int num2 = 0; //定义第二个变量//用户输入数据printf("请输入两个数字,请用回车或空格分割:\n");scanf("%d %d", &num1, &num2);//进行计算int sum = 0; //初始化为0sum = num1 + num2;//打印计算结果printf("%d + %d = %d", num1, num2, sum);return 0;
}/*
上面这段代码如果在VS2022上第一次编译,是会出现C4996的报错的
'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. 
这是因为VS编译器认为scanf这个函数是不安全的,建议使用scanf_s来替换
但是scanf_s仅仅是在VS中使用的,也就是不可以跨平台使用,因此我们依旧建议使用scanf函数
具体操作方法为在整个项目的第一行加上
#define  _CRT_SECURE_NO_WARNING
VS中不仅只是scanf函数出现这个报错,所以我们在所有源文件的第一行都加入这个预处理便可以有效的在以后得编程中避免 C4996 的报错的
具体操作方法如下:
1、使用everything工具搜素 newc++file.cpp ,右击鼠标——打开路径
2、将该文件复制到桌面上,然后便可以正常修改,在其内容的第一行写入 #define  _CRT_SECURE_NO_WARNING
3、再将修改好的文件拷贝会原路径下即可
这样以后创建的文件中都会默认有这句预处理了
*/

        变量与常量的内容并没有结束,考虑到篇幅原因,我们本篇笔记暂时结束到这里,关于变量的作用域和生命周期以及关于常量的内容我们会在下一篇笔记中再详细讲出,同时会往下进行关于字符串+转义字符+注释的学习。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

热门解压短视频素材资源网站推荐

解压短视频素材哪里找&#xff1f;今天我们来盘点一些优质的解压短视频素材下载平台。如果你也在寻找热门解压视频素材&#xff0c;这份资源清单一定能帮到你&#xff5e; 蛙学网 蛙学网是国内领先的视频素材网站&#xff0c;涵盖了各种类型的解压视频资源&#xff0c;如手艺制…

【专题】计算机网络之物理层

计算机网络体系结构&#xff1a; 1. 物理层的基本概念 物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。 作用&#xff1a;尽可能屏蔽掉不同传输媒体和通信手段的差异。 用于物理层的协议也常称为物理层规程 (procedu…

【HarmonyOS NEXT】实现保存base64图片到图库

上篇文章介绍了HarmonyOS NEXT如何保存base64文件到download目录下&#xff0c;本次介绍如何保存base64图片到图库&#xff0c;网络图片保存方式大同小异&#xff0c;先下载图片&#xff0c;然后再保存 phAccessHelper.showAssetsCreationDialog参考官方文档’ ohos.file.pho…

利用透视变换实现文档矫正功能

透视变换是将成像投影到一个新的平面上&#xff0c;也称作投影映射。OpenCV通过函数cv2.getPerspectiveTransorm(pos1,pos2)构造矩阵M&#xff0c;其中pos1和pos2分别表示变换前后4个点的对应位置。得到M后再通过函数cv2.warpPerspective(src,M,(cols,rows))进行透视变换。 函数…

Threejs 实现3D 地图(02)创建3d 地图

"d3": "^7.9.0", "three": "^0.169.0", "vue": "^3.5.10" 地图数据来源&#xff1a; DataV.GeoAtlas地理小工具系列 <script setup> import {onMounted, ref} from vue import * as THREE from three im…

空间单细胞转录组cell2location分析流程学习

Cell2location 是一个用于空间转录组学数据分析的工具。它是一个基于贝叶斯统计模型的Python包&#xff0c;旨在利用空间转录组数据和单细胞转录组数据来进行细胞类型的空间解构。通过将单细胞转录组数据中的细胞类型信息投射到空间转录组数据中&#xff0c;Cell2location 可以…

如何应对 Android 面试官 -> ANR 如何优化?线上 ANR 如何监控?

前言 本章主要围绕 ANR 如何监控以及优化&#xff1b; 基本概念 ANR(Android Not Responding) 是指应用程序未响应&#xff0c;Android 系统对于一些事件需要在一定的时间范围内完成&#xff0c;如果超过预订时间未能得到有效响应或者响应时间过长&#xff0c;都会造成 ANR。 …

SAP_MM模块-设置业务合作伙伴类型字段必输(多种方案)

一、业务背景 公司需要把供应商增加一个细分的维度&#xff0c;并且要求该字段设置为必输&#xff0c;防止用户新增供应商时忘记维护。这里给用户找了一个分类的字段&#xff1a;业务合作伙伴类型&#xff0c;本文主要讲解如何设置该字段设置为必填&#xff1b; 注意&#xff…

[笔记] 关于CreateProcessWithLogonW函数创建进程

函数介绍 https://learn.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw BOOL CreateProcessWithLogonW([in] LPCWSTR lpUsername,[in, optional] LPCWSTR lpDomain,[in] …

【MySQL】表的约束、基本查询、内置函数

目录 1. 表的约束1.1 空属性1.2 默认值1.3 列描述1.4 zerofill1.5 主键1.6 自增长1.7 唯一键1.8 外键 2. 基本查询2.1 表的增删改查2.1.1 插入数据2.1.2 插入否则更新2.1.3 替换插入 2.2 Retrieve2.2.1 select ----- 查询2.2.2 where ----- 筛选2.2.3 order by ----- 结果排序2…

C++11——基础新增特性

目录 C11介绍统一的列表初始化对内置类型initializer_list 声明autodecltypenullptr 范围for容器新增接口emplace容器的新方法 C的前身是“C with Classes”&#xff0c; 最早于 1979年由 祖师爷Bjarne Stroustrup&#xff08;本贾尼斯特劳斯特鲁普&#xff09; 在贝尔实验室…

#HarmonyOS:页面和自定义组件生命周期

页面生命周期 即被Entry装饰的组件生命周期 onPageShow&#xff1a;页面每次显示时触发一次&#xff0c;包括路由过程、应用进入前台等场景。onPageHide: 页面每次隐藏时触发一次&#xff0c;包括路由过程、应用进入后台等场景。onBackPress: 当用户点击返回按钮是触发 组件…

成都睿明智科技有限公司解锁抖音电商新蓝海

在这个短视频风靡的时代&#xff0c;抖音已不仅仅是一个娱乐平台&#xff0c;它更是商家们竞相追逐的电商新战场。成都睿明智科技有限公司&#xff0c;作为抖音电商服务领域的佼佼者&#xff0c;正以敏锐的洞察力和专业的服务&#xff0c;助力众多品牌在这片蓝海中乘风破浪&…

RHCE-多IP访问网站

关闭防火墙 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0下载nginx工具 [rootlocalhost ~]# yum install nginx Updating Subscription Management repositories. Unable to read consumer identityThis system is not registered with an …

面对AI算力需求激增,如何守护数据中心机房安全?

随着人工智能&#xff08;AI&#xff09;技术飞速发展&#xff0c;AI算力需求呈现爆发式增长&#xff0c;导致对数据设备电力的需求指数级攀升。这给数据中心带来前所未有的挑战和机遇&#xff0c;从提供稳定的电力供应、优化高密度的部署&#xff0c;到数据安全的隐私保护&…

【unity小技巧】Unity6 LTS版本安装和一些修改和新功能使用介绍

文章目录 前言安装新功能变化1、官方推荐使用inputsystem进行输入控制2、修复了InputSystem命名错误导致listen被遮挡的bug3、自带去除unity启动画面logo功能4、unity官方的behavior行为树插件5、linearVelocity代替过时的velocity方法待续 完结 前言 2024/10/17其实unity就已…

前端拦截302重定向

背景: 根据业务场景需要拦截302做后续的逻辑处理 尝试一: : axios拦截 、、、、、async created() {// 获取302请求返回的location后手动修改video的src路径let targetSrc;try {await axios.get(this.video).then((res) > {const { headers, status } res;const { locat…

Spring Cloud 解决了哪些问题?

大家好&#xff0c;我是锋哥。今天分享关于【Spring Cloud 解决了哪些问题&#xff1f;】面试题&#xff1f;希望对大家有帮助&#xff1b; Spring Cloud 解决了哪些问题&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Cloud 是一个为构建分布式…

如何删除Maven

1.找到Maven安装路径 方法一&#xff1a; 可以直接在文件资源管理器里面选中“此电脑”然后右上角搜“apache-maven”&#xff0c;这个过程可能长达几分钟甚至更久 方法二&#xff1a; 这里推荐一个名叫“Everything”的软件&#xff0c;能够快速的查找到需要的文件 2.找到本…

每日一道算法题(Leetcode 20)

Whats past is prologue. 凡是过去&#xff0c;皆为序章。 题目 分析 1. 我们可以用栈的结构来解决这道题。 2. 我们使用while循环&#xff0c;每次读取字符串中一个元素进行操作&#xff0c;直到最后读取到 \0为止。 3. 如果遇见 (, [ ,{ 这三种左括号&#xff0c;则把该左…