1、简述C++中命名空间的作用。

答:避免重复定义全局变量的问题。

2、定义两个命名空间A 和 B 分别在A中和B中定义变量value。在main函数中将两个空间的value打印出来。

#include "iostream"
using namespace std;
namespace A
{
int value = 100;
}
namespace B
{
int value = 10;
}
int main()
{
cout << "名字空间A中value值为:" << A::value << endl;
cout << "名字空间B中value值为:" << B::value << endl;
}

3、const int a; 在C++编译器中是否需要初始化,为什么?

需要初始化,因为const修饰的变量为只读属性,定义后不允许再对变量a做赋值操作,即如果未在定义变量的同时对a进行赋值,a的值默认为0且后续不允许改变值。

4、在c++中怎么使用c库函数?

方法一:

在.c文件中写入条件编译

#ifdef _cplusplus
Extern “C”{
………………
}(在复合语句中写入c库函数及其代码)
#endif

方法二:

直接在.cpp文件中用extern “C”{包含C库函数的头文件文件}

在进行编译的时候:

g++ 文件名.cpp  -I(路径/到头文件) -L(路径/到库文件) -l(库名)

5、C++的常用后缀有哪些?

  • .cpp
  • .hpp
  • .cc
  • .h
  • .cxx

6、命名空间的匿名空间的作用,以及与C语言中的static 的异同点?

匿名空间的定义提升了代码的书写速度,使原来的std::变量--->::变量,可直接调用

匿名空间的作用与Static的相同点,在调用函数内部定义的局部变量不会随着函数的调用结束而被释放内存,而是直至整个程序终止,变量才被释放内存。

匿名空间的作用与Static的不同点,static 作用的作用域在整个工程文件中都有用而匿名空间仅在定义匿名空间的本文件中使用。

7、引用与指针的区别

指针 :数据类型 * 指针名 = &变量

引用 :数据类型 & 引用名 = 变量 (数据类型必须与变量类型一致,而且必须要初始化)

  1. 定义和性质

    指针:是一个变量,它存储的是另一个变量的内存地址。指针本身是一个独立的实体有自己的内存空间

    引用:是原变量的一个别名,它并不占用独立的内存空间,而是与原始变量共享相同的内存地址
  2. 初始化

    指针:可以在定义时不初始化,但通常建议初始化以避免指向不确定的内存地址。

    引用:必须在定义时初始化,且一旦初始化后,就不能再指向其他变量。
  3. 灵活性

    指针:可以指向其他变量,包括在运行时改变指向。指针也可以有多级,如int p;。

    引用:一旦初始化后,就不能再指向其他变量。引用只能是一级,如int &r = a;,而int &&a;(尝试定义二级引用)是不合法的。
  4. 空值

    指针:可以指向NULL(或nullptr在C++11及以后版本中),表示不指向任何对象。

    引用:不能为NULL,它必须始终指向一个有效的对象。
  5. sizeof运算

    指针:sizeof运算符返回的是指针本身所占用的内存大小,这取决于系统架构(如32位或64位)。

    引用:sizeof运算符返回的是被引用对象的大小,而不是引用本身的大小(因为引用不占用独立的内存空间)。
  6. 运算

    指针:支持多种运算,如算术运算(加减)、比较运算等,这些运算通常基于指针所指向的内存地址。

    引用:不支持算术运算,它主要用于访问和修改它所引用的变量的值。
  7. 函数参数和返回值

    作为函数参数:指针传递的是地址值,是值传递的一种;而引用传递的是变量的别名,可以看作是地址传递的一种更直观、更安全的方式。引用作为函数参数时,不需要解引用就可以直接访问和修改原始变量的值。

    作为函数返回值:函数可以返回引用,允许对返回的对象进行进一步的操作。而指针作为函数返回值时,需要注意指针的有效性和野指针问题。
  8. 安全性

    指针:由于指针的灵活性,它可能带来更高的风险,如野指针、悬挂指针等问题。

    引用:相对更安全,因为它一旦被初始化后就不能再指向其他变量,减少了出错的可能性。

C++命名空间、标准输入输出、引用的更多相关文章

  1. Linux学习--第十天--bash脚本、用户自定义变量、环境变量、位置参数变量、预定义变量、标准输入输出、wc、history、dd、PS1

    shell简介 分为两种c shell 和b shell b shell:sh.ksh.Bash.psh.zsh: (Bash和sh兼容,linux基本shell是Bash) c shell:csh. ...

  2. C/C++ 标准输入输出重定向

    转载自:http://www.cnblogs.com/hjslovewcl/archive/2011/01/10/2314356.html 这个对经常在OJ上做题的童鞋们很有用.OJ基本都是用标准输入 ...

  3. C语言的标准输入输出

    1. 标准输入输出 标准输入.输出主要由缓冲区和操作方法两部分组.缓冲区实际上可以看做内存中的字符串数组,而操作方法主要是指printf.scanf.puts.gets,getcha.putcahr等 ...

  4. linux标准输入输出及错误输出

    Linux Shell 环境中支持输入输出重定向,用符号"<"和">"来表示. 0.1和2分别表示标准输入.标准输出和标准错误信息输出,可以用来指定 ...

  5. 【转载】标准输入输出重定向(Visual C++)

    原文:标准输入输出重定向(Visual C++) 引言 本人偶得在 Visual C++ 中进行输入输出重定向的办法,比通常的做法“freopen”更加的灵活和方便,特在此共享.目前,代码正在不断地摸 ...

  6. linux标准输入输出2>&1

    linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0,1,2.     STDIN是标准输入,默认从键盘读取信息:STDOUT是标准输出,默认将输出结果输出至终 ...

  7. C++之标准输入输出

    由于在公司,无法上传图片,往后补上. 关于C++的标准输入输出,其实就相当于C语言的scanf和printf,只不过C++用cin和cout这样称为流的机制. #include <iostrea ...

  8. 标准输入输出 sys.stdin与sys.stdin

    1.python中的标准输入输出 如果需要更好的控制输出,而print不能满足需求,input也不能 sys.stdout,sys.stdin,sys.stderr就是你需要的. 2.输入:sys.s ...

  9. Python学习笔记015——文件file的常规操作之三(标准输入输出文件)

    1 标准输入输出文件 在Python中,模块sys中含有标准的输入输出文件 sys.stdin     标准输入方法(一般是键盘) sys.stdout   标准输出方法(到显示器的缓冲输出) sys ...

  10. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

随机推荐

  1. 用 Sentence Transformers v3 训练和微调嵌入模型

    Sentence Transformers 是一个 Python 库,用于使用和训练各种应用的嵌入模型,例如检索增强生成 (RAG).语义搜索.语义文本相似度.释义挖掘 (paraphrase min ...

  2. ETL工具-nifi干货系列 第十四讲 nifi处理器PublishKafka实战教程

    1.kettle的kafka生产者叫kafka producer,nifi中的相应处理器为PublishKafka,如下图所示: 可以很清楚的看到PublishKafka处理器支持多个版本的kafka ...

  3. Math Record

    T1.P3327 知识点:莫比乌斯反演,数论分块 我们知道 \(d(ij) = \sum_{x | i}\sum_{y | j}[\gcd(x,y) == 1]\). 所以我们就要求 \(\sum^n ...

  4. Easysearch Chart 0.2.0都有哪些变化

    Easysearch Chart 包更新了,让我们来看看都有哪些变化: Docker 镜像升级 Service 名称调整,支持 NodePort 模式部署 现在让我们用 NodePort 模式部署一下 ...

  5. LNMP集群架构

    网站集群拆分 上一节我们是部署了单机的LNMP,再往下,要进行拆分了,无论是性能.还是安全性,都务必要拆分. 拆分的内容有 nginx集群 mysql nfs共享存储 等 拆分思路 情况1 当前的单机 ...

  6. mysql8新版本安装注意事项及解决本地系统账户Strart the server和SQLyog客户端连接报 plugin caching_sha2_password could not be loaded

    mysql 安装包一路next安装, 到Apply Configuration,卡住在Start the server,原因是mysql8新版本的登录身份不对,需要进入服务,找到mysql80,然后属 ...

  7. JAVA日期当天0点0分0秒

    LocalDateTime LocalDateTime ldt = LocalDateTime.now(); LocalDateTime todayZero = LocalDateTime.of(ld ...

  8. 微信小程序自动化分析_包含执行设备及对应的微信版本

    背景介绍: 微信小程序是基于腾讯自研 X5 内核,不是谷歌原生 webview. 实现方式: 1.小程序自动化sdk,使用自动化sdk,需要有小程序的开发者权限,以及参考的资料较少,2.选择采用app ...

  9. Spring-jdbcTempalate研究

    很多时候,需要使用jdbcTemplate,既有出于性能考虑的因素,也有出于个人偏好. 关于jdbcTemplate的几个关键性的问题: 一.简介 JdbcTemplate位于org.springfr ...

  10. hynitron ts 驱动分析

    # hynitron ts 驱动分析 背景 在公司项目中搞LCD移植的时候,在TP功能上,有时候频繁操作屏幕时会导致i2c总线返回-2错误. 问题描述: 1.安卓桌面起来以后,点击屏幕有响应. 2.此 ...