网站首页 > 技术文章 正文
1.第一个c++程序
首先c++是包容所以c的规则,第一个不同的地方就是头文件。在c里面头文件都是以 .h 结尾,在c++里所有的c头文件都去掉 .h结尾并在前面加上c。例如:include<stdio.h>应该为include< cstdio>
上面的代码依旧是C风格的输出,C++的新的输入输出流库(头文件iostream)将输入输出看成一个流,并用输出运算符 << 和输入运算符 >> 对数据(变量和常量进行输入输出);。下面我们先来看这是如何用的。
std::cin :标准输入流对象(键盘)。
std::cout :标准输出流对象(屏幕)。
endl :换行符。
2.命名空间namespace
我也不知道用什么定义这个概念,他的作用是避免命名污染,也就是说避免命名冲突。用符号::表示是哪个命名空间的变量。如上面的std::cin,std::cout.就是c++标准命名空间的输入输出流。
如上面代码就有两个命名空间,两个命名空间里面有相同命名的变量,这个时候就要用命名空间来区别他们。但是每次写变量都要加上命名空间以及::符号的话会让代码十分的冗余。所以命名空间的使用有三种方法。
using namespace X; 在程序的开始引用整个命名空间。
using X::name ; 使用单个变量名称。
X::name 每次使用加上前缀。
当然最常用的就是第一种,直接引用整个命名空间。
写到这里我不知写什么了,哈哈哈。写作用域这个东西吧,c++和c这个点上还是有一些区别的。
3.作用域问题
我们都知道{}表示作用域,表示变量的生存周期。这个并没有什么区别,但是在c++里面这个问题很重要。咱先看一段代码再解释它。
我相信大家看了代码就一目了然了。在一个域里面可以定义域外部的同名变量。并且域内会隐藏外部的变量。同样的,外部的变量也不会获取到域的变量。
如果出现了局部变量和全局变量重名时,访问全局变量要使用::。
关于这个域这里还有一个运用就是在for循环的时候可以在for(),后面括号里面定义变量,在c里面是不可以的。而且这个变量的作用域就仅在这个for循环语句里面。
4.引用 int&a=b
首先我对引用的感觉就是这是个好东西啊,大家回想一下c语言函数传参时。如果要让函数能够改变实参的值。那就得传实参的地址对吧,c++里面不用啦,传递实参本身也能改变它的值啦,这就是引用。
那引用是个啥,它是一个变量的别名,比如你有个小名。但是这两个名字都表示你。同样通过引用给变量取别名。表示的是一个变量,是同一块地址空间的名字。
1.简单使用
定义方法:变量的引用和变量必须是同种类型,定义是在类型后面加上&符号。如int&a=b;
输出结果:
跟据结果大家可以看到a和b完全是同一个东西。
注意:引用必须初始化,不能单独存在,也不能改变指向
2.作为形参
这段程序可以看到,引用作为函数形参。表示形参和实参实际上是同一个对象,在函数中对形参的修改也就是对实参的修改
最后,如果你想学C/C++可以私信小编“01”获取素材资料以及开发工具和听课权限哦!
猜你喜欢
- 2024-10-11 c++ 编译阶段(c++编译原理)
- 2024-10-11 C++代码解析3(c++代码大全及其含义)
- 2024-10-11 C++ 将容器元素连接成字符串(c++中的容器)
- 2024-10-11 Qt/C++中英输入法/嵌入式输入法/小数字面板/简繁切换/特殊字符
- 2024-10-11 深入解析C++字符串处理:高效去除头尾空格的多种方法与实践
- 2024-10-11 初识C++输入输出(c++基本的输入输出)
- 2024-10-11 如何从C语言快速过渡到C++?大神回答道:只需要一个下午就可以
- 2024-10-11 C++系列2-1:C++快速入门之命名空间和输入输出
- 2024-10-11 EasyC++01,C++程序概述(c++ ecs)
- 2024-10-11 C++第2课:输出与换行#少儿编程#盐城少儿编程#编程机器人
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)