当前位置: 首页 > news >正文

C++教程 - How to C++系列专栏第3篇

关于专栏

这个专栏是优质的C++教程专栏,如果你还没看过第0篇,点击C++教程 - How to C++系列专栏第0篇去第0篇

本专栏一致使用操作系统:macOS Ventura,代码编辑器:CLion,C++编译器:Clang

感谢一路相伴的朋友们,感谢你们的支持 ^ _ ^

博主反馈非常及时,如果你在阅读的时候遇到问题,可以直接在评论区提问,博主看到后会在24小时内给你反馈

C++教程 - How to C++系列专栏第3篇


目录

关于专栏

更新记录

2023年8月10日

前言

声明变量

为什么要声明变量

声明放在代码哪里?

 赋值语句

=

-

cout

结语

快捷翻页

本文参考文章,书籍


更新记录

2023年8月10日

发布第一篇文章


前言

C++的语句是什么?变量为什么要声明?变量声明的代码放到程序的哪里比较好?赋值语句是什么?为什么选cout?printf不好吗?


C++程序是一组函数,函数是由语句构成的,C++有很多语句,那么下面我们先来看一段程序介绍他们

cout_3blog.cpp

#include <iostream>int main(void)
{using namespace std;int paper; // blog:定义变量paper = 20;  // blog:赋值运算符cout << "I have" ; // blog:空格cout << paper;cout << " Composition papers.";cout << endl;paper = paper - 2; // blog:运算cout << "Blog time!";cout << endl;cout << "Now I hava ";cout << paper;cout << " Composition papers. ";cout << endl;return 0;
}

声明变量

如果要把信息存储到计算机中,则必须要指出信息存放位置和所需的内存空间,C++中有一种简单的方法,就是声明,指出存储类型和位置标签,比如上面程序的第7行,我们把注释去掉就是这样:

int paper;

 int表示整型,编译器会分配其内存大小和详细信息,int是基础的数据类型,表示整数,即不含有小数部分,可以为正也可以为负,大小范围取决于C++的实现,之后我们会详细讲解这个部分

paper表示其在内存单元中的标签,它被称为变量,表示它是可以被不断更改的,paper就可以理解为它的代号或者标签,这个程序中可以使用paper来操作内存中的值

为什么要声明变量

有些语言(比如CPython)的变量就不需要声明,而C++为什么非要声明一下变量呢?

我们举个例子,比如程序员可能编写下面的Python语句

hello_v1 = 123
...
...
...
hallo_v1 = hello_v1 + hello_v2
...
...
...
print(hello_v1)

我们可以发现hallo是拼写错误,,这种情况下运行并不能达到将变量hello_v1加上hello_v2后输出的结果,也很难在大型程序中的成千上万的支付中判断为什么出现了这种问题,而C++“声明后使用”在这时便起了作用,假如编译器发现hallo_v1没有声明过,则会直接报错,比如下面就是一个会导致编译器报错的例子:

clang_variables_declaration_error.cpp

#include <iostream>int main(void)
{using namespace std;cout << a;return 0;
}

clang报错如下:

clang_variables_declaration_error.cpp:6:13: error: use of undeclared identifier 'a'cout << a;^
1 error generated.

 翻译:

clang_variables_declaration_error.cpp:6:13:错误:使用未声明的标识符'a'

cout << a;

               ^

1 .产生错误。

声明放在代码哪里?

如果你熟悉C,你可能知道C语言的变量声明都要求在函数或过程的开头部分,但其实C++并没有这个要求,只要你放在使用的前面即可,当然这可能不能一目了然看出哪些函数使用了哪些变量


 赋值语句

=

我们可以看到程序中有一段赋值语句:

paper = 20;

=被称作赋值运算符

在Microsoft Learn中的解释是:

将第二个操作数的值存储在由第一个操作数指定的对象中(简单赋值)

第二个操作数第一个操作数是什么东西?我们来看一段代码

v = 1;

这其中v就是第一操作数,1就是第二操作数,理解了吧

C++中有一种很好玩的用法:

int v1;
int v2;
int v3;
int v3;
v3 = v2 = v1 = 456

赋值运算从左到右进行,456首先被赋值给v1,然后给v2,最后给v3

-

其实除了=,-也是赋值运算符,在上面的程序中我们能看到这样的代码:

paper = paper - 2;

其中paper被赋值了自己原先的值减二,是不是有点绕,我来解释一下

你有一个外号叫paper,真实的名字叫20,后面呢你改名了,把名字改少了2,然后把20-2的这个名字赋予了自己。


cout

我们看到上面的程序中这段代码:

cout << paper;

并没有输出“paper”字符串,而是输出了它的值20,其实cout是把两个操作合并了起来,cout先把paper替换成了 20,然后转换输出字符

cout可以作用于字符串和数字,但大家不要忘记,整数20和字符串“20”有天壤之别,字符串是书写该数字是用到的字符2和5,而数字则是把20整体存储为字符,之后我们在将数据类型的时候会着重讲解

它和C的区别就在于cout的聪明程度,在C中要输出整数20和字符串“20”需要这么做:

printf("String: %s\n", "20");
printf("integer: %d\n", "20");

不光复杂,还必须要用%s和%n来区分字符串和整数,假如你要求它输出字符串,但你输入了个整数,printf不够精密,发现不了错误,于是就会执行下去,输出一堆乱码 


结语

作者会经常帮助有问题的小伙伴解决问题如果你有问题,可以直接到评论区指出,作者会在看到后到24小时内给予答复

如果本文有任何问题欢迎在评论去指出,如果喜欢这篇文章,希望能点赞评论关注

如果你们身边有像你提起过这个领域的,或者希望可以和ta一起进步的,把分享给ta吧

2657字,9个父项,5个子项


快捷翻页

第0篇

第1篇

第2篇


本文参考文章,书籍

参考文章

如果说Python中变量是标签(不是盒子),那这个变量名会占内存吗? - 知乎

赋值运算符 | Microsoft Learn

参考书籍

C++ Primer Plus

http://www.lryc.cn/news/124126.html

相关文章:

  • 使用Edge和chrom扩展工具(GoFullPage)实现整页面截图或生成PDF文件
  • image has dependent child images
  • Linux系统中基于NGINX的代理缓存配置指南
  • openCV项目开发实战--详细介绍如何改善夜间图像的照明(附python和C++源码)
  • rabbitmq的消息应答
  • 如何重置树莓派 Pico(重置外围设备失败)
  • LaWGPT基于中文法律知识的大语言模型_初步安装
  • 一文学会sklearn中的交叉验证方法,cross_validate和KFlod实战案例
  • 《面试1v1》ElasticSearch倒排索引
  • 基于架构的软件开发方法
  • 实战篇之基于二进制思想的用户标签系统(Mysql+SpringBoot)
  • Ansible 进阶
  • 滴滴Ceph分布式存储系统优化之锁优化
  • flutter开发实战-MethodChannel实现flutter与iOS双向通信
  • 华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(七)
  • K8S系列一:概念入门
  • QT- QLineEdite设置自动补全功能,并修改自动补全的样式
  • 解决Adobe Flash Player已被屏蔽
  • 【Spring专题】Spring之Bean的生命周期源码解析——阶段二(IOC之实例化)
  • YOLOv8目标检测算法
  • uniapp条件编译
  • 2023年国赛数学建模思路 - 复盘:光照强度计算的优化模型
  • volte端到端问题分析(一)
  • 微信小程序(原生)搜索功能实现
  • Android AOSP源码编译——AOSP整编(二)
  • 铁是地球科学争论的核心
  • TX Text Control .NET Server for ASP.NET Crack
  • 工作纪实36-ES跨集群迁移
  • 【MFC】11.MFC文档和单文档架构-笔记
  • 2023年“研究生科研素养提升”系列公益讲座在线测评题目与参考答案