【C++入门编程常见问题】(小白必看)

news/2024/11/6 13:32:06/

常见问题

vsstudio快捷键

快速注释组合键 ctrl+k + ctrl+c

取消注释快捷键 ctrl+k + ctrl + u

支持垃圾回收机制

大多数面向对象编程语言具有垃圾回收机制。早期的C++语言不具备垃圾回收机制,这意味着申请的内存资源在使用完成后,需要程序员自己释放。直到C++11标准诞生,提出了智能指针新特性,实现了内存资源的自动管理,使得指针的使用更加灵活,并避免了内存泄漏问题。

iostream和命名空间std的作用?

iostream

std 就是一个命名空间,对象函数很多都是在这里面定义的 用之前调用

三种方式:

1)using namespace std; //引用标准命名空间std

using std::cout;
using std::endl;

std::cout << “123\n”<<std::endl;;

#include<bits/stdc++.h>
#include<iostream> //标准输入/输出头文件iostream
using namespace std; //引用标准命名空间stdint main()
{cout << "hello" << endl;//cout是预定义的输出流对象,用于输出数据//endl表示换行return 0;
}

或者如果不使用命名空间std;

using std::cout;
using std::endl;

效果相同

#include<bits/stdc++.h>
#include<iostream>
//using namespace std;
using std::cout;
using std::endl;
int main()
{cout << "123\n";return 0;
}

cout和endl的功能?

cout是c++语言的输出符号。endl是程序的结束符。

cout<<endl是使程序输出结束(有使输出结果换行的功能)

iostream.h

一个非标准的输入输出流 .h的头文件是c语言格式的

和iostrem的区别是存不存在在std命名空间中

iostream

是标准输入输出流,C++规范的,带有名称空间的头文件 包含在std名字空间中

而iostream流里面又包含cin和cout输入输出对象,所以使用cout的时候必须加std::

通过刚才的比较我们了解到iostream是c++的头文件,而iostreamh是C语言格式的头文件,由于C++格式的iostream是规范的带有名字空间的头文件,所以在使用iostream标准库中的cout对象时要加上名字空间标识符std,而c格式的非标准的输入输出流iostream.h则不用

也就是说从C++开始方才真正引入了名字空间这个新概念,那么名字空间的作用究竞是什么呢?

C++里引入名字空间(namespace)的目的是为了避免和减少命名冲突。一旦一个程序写大了,就很难避免重名,特别是多人合作的情况下。过去C中的解决方法只有靠人为的注意,并自加长名学,以避免重名。这样做会使得一些名字看上去没有意义或者难以理解,而程序员在写程序的时候,也受这个问题的限制,不能自由地命名自己使用的变量或者函数。而有了名字空间(namespace)就不存在这些问题了,这就是C++引入namespace这个概念的好处。

举一个形象的例子

有两个学生,一个叫小王,一个叫小李,他们都各自拥有一本相同的语文书,为了区分这两本书,他们就要在书的封皮上写上自己的名字一小王或者小李。同理,我们调用 cout 对象时也要在前边写上 cout 所属的命名空间“std::”,而在代码里加“using namespace std”,就可以不用再加“std::”。但是最好的方法就是不用“using namespace std”,而是用using std::cout;这样可以避免命名重复,因为不同的名字在不同的命名空间内,将它们都释放出来时,若不小心会造成使用错误库函数中的对象的情况。

在这里插入图片描述

重名问题(多个命名空间)

#include<bits/stdc++.h>
#include<iostream>namespace a
{int b = 1;
}
namespace c {int b = 2;
}
int main()
{/*此处可以不使用using就可直接调用using namespace a;using namespace c;*///此处无法成功调用,因为无法判断调用的是哪个bstd::cout << b;int b = 9;std::cout << b << " " <<a::b<< " " << " " << c::b << " " << std::endl;
}

判断数据类型typeid().name()

cout << typeid(today).name() << endl;

制表符\n\t\r

\n:表示换行操作,光标会移动到下一行(next line)

\t:表示水平制表空行操作,相当于Tab键,不会换行

\r:相当于回车,相当于光标回到本行首位置,不会换行;


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

相关文章

搞懂 MyBatis 的事务管理机制

MyBatis 是一款优秀的持久层框架&#xff0c;相信很多 Java 后端开发人员对它都不会陌生。在实际项目开发中&#xff0c;事务管理是非常重要的一环&#xff0c;而 MyBatis 也为我们提供了便捷的事务管理机制。 本文将从以下方面详细解析 MyBatis 的事务管理机制&#xff1a; …

三十二、自定义镜像

1 、Docker镜像的原理 Docker镜像本质是什么? Docker中一个centos镜像为什么只有200MB&#xff0c;而一个centos操作系统的iso文件要几个G? Docker中一个tomcat镜像为什么有500MB&#xff0c;而一个tomcat安装包只有10多MB? 操作系统组成部分: 计算机组成原理 进程调度子…

Java项目中常用的SON转换方式及示例

摘要: JSON&#xff08;JavaScript Object Notation&#xff09;是一种常用的数据交换格式&#xff0c;用于在不同的应用程序之间传输和存储数据。在Java开发中&#xff0c;我们经常需要将Java对象转换为JSON格式&#xff0c;或者将JSON转换回Java对象。本文将介绍几种常见的JS…

卫龙上市后首份财报:营收净利双降、去年净利下滑8成

当你吃辣条的时候&#xff0c;你在吃什么&#xff1f; 味道&#xff1f;口感&#xff1f;还是童年的记忆&#xff1f; 近日&#xff0c;卫龙美味全球控股有限公司&#xff08;下称“卫龙”&#xff09;发布了上市后的首份年报。 卫龙是一家辣味休闲食品的企业&#xff0c;根…

如何在 Mac 或 Windows 上将 PDF 转换为 Word 而不丢失格式

PDF 有无数的优点&#xff0c;但它不能像 Microsoft Word 文档那样容易编辑。如果您没有价格总是很高的 PDF 编辑器&#xff0c;您将无法根据需要编辑或使用 PDF 源。但是我们可以将PDF转成Word&#xff0c;方便编辑。 有很多解决方案可用于在 Mac 上将 PDF 转换为可编辑的 W…

〖Web全栈开发①〗—网络编程基础(上)

网络编程基础 网络编程网络编程概述TCP/IP协议IP地址什么是IPIP组成IP 地址使用过程查看IPIp地址分类&#xff1a;子网掩码 端口 socketSocket原理&#xff11;.什么是Socket2.创建一个tcp socket&#xff08;tcp套接字&#xff09; tcp 介绍 &#x1f3d8;️&#x1f3d8;️个…

awk命令编辑

awk工作原理 逐行读取文本&#xff0c;默认以空格或tab键分隔符进行分隔&#xff0c;将分隔所得的各个字段保存到内建变量中&#xff0c;并按模式或者条件执行编辑命令。 sed命令常用于一整行的处理&#xff0c;而awk比较倾向于将一行分成多个“字段”然后再进行处理。awk信息…

WINCC和EXCEL的OPC通讯

Option Explicit Option Base 1 Const ServerName “OPCServer.WinCC” Dim WithEvents MyOPCServer As OpcServer Dim WithEvents MyOPCGroup As OPCGroup Dim MyOPCGroupColl As OPCGroups Dim MyOPCItemColl As OPCItems Dim MyOPCItems As OPCItems Dim MyOPCItem As OPCI…