【C++初学者自学笔记一】(把自己刚学到的东西做一下总结,如果有哪些地方不足请留言指正)
这是我写的第一个博客关于C++的一些笔记,我不会写的太深奥,因为这样很多人会看不懂(我刚开始学C语言深受其害)。个人觉得C++这门语言有些类似于C语言但是有些函数的用法还是有不一样的。C语言中的头文件是#include<stdio.h>,C++的头文件为#include<iostream>(偶尔还会用到stdio.h的头文件,C++一般写法为#include<cstdio>)。
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;//此声明代表了能使用std中所有的东西
上面这个代码中stdio.h是以往的C和C++的头文件,cstdio是标准C++,而且cstdio中的函数都是定义在一个名称空间std里面的,如果要调用这个名字空间的函数,必须得加std::或者在文件中声明using namespace std;string这个头文件是储存了字符以及字符串的一些相关操作的函数,等一下会在文章的下面列举几个很常见的函数。想学写C++的同学先把C语言基础打好,不然到后面会很麻烦的(本人亲测)。
在C语言中输入输出是scanf和printf,而在C++中则改成了cin和cout。和前者类似,它们也都存储在头文件中,需要值得注意的是<<和>>的区分:输入为cin>>a;(输入一个a)输出为cout<<"com="<<a<<endl;(输出的结果为com=a)
cin>>a;
cout<<"com="<<a<<endl;
了解了输入输出,我们接着来讲这个namespace的特点。上述代码中namespace可以作为命名空间使用,可以在同一个工程里调用该空间里的所有变量(但是当namespace是无命名空间的时候,则不能在同一个工程下其他文件调用)。看下面代码可以自己试着运行一下,A::i的意思是调用命名空间中变量i的值并且打印出来。
int i=;
namespace A{
int i=;
int n;
}
int main(){
int i=;
cout<<"A::i为命名空间变量"<<""<<A::i<<endl;//输出结果为2
cout<<"::i为全局变量"<<""<<::i<<endl;//输出结果为1
cout<<"局部变量i的值是"<<""<<i<<endl;//输出结果为3
}
记住这几个用法:直接写i是局部变量打印;::i是全局变量;A::i是命名空间的变量。这样写的好处是防止变量重名导致代码歧义。同时命名空间也可以镶嵌套用,就比如s1=>s2当作s1在命名空间内,那么我要调用s1中的变量i的值直接就写成s2::s1::i就行了。如果一个命名空间的一个函数我们需要用很多次怎么办?
using A::n;该只要声明一次就可以在程序中使用变量n而不发生报错;using namespace A;这段代码声明使A这个命名空间的参数都可以修改;感兴趣的同学可以参考下面的代码自己在调试一下。
using A::n;
n=;
using namespace A;//使A这个名字空间的所有参数可以修改
cout<<"n="<<n<<endl;
刚开始学差不多就是这几种语法,后面陆陆续续我会补充一些新学的内容在我的博客里。后面还有什么C++的结构体、联合体、枚举和重载等等。
如果代码或者是那些地方理解有问题呢希望同学或者前辈能帮我指出来。
【C++初学者自学笔记一】(把自己刚学到的东西做一下总结,如果有哪些地方不足请留言指正)的更多相关文章
- 初学者自学笔记-this的用法
请注意:这是自学者的笔记,只是个人理解,并非技术分享,如有错误请指正. "this"的意思,简单而言,就是"这个",也就是"当前".谁调用它 ...
- 【C++初学者自学笔记三】哑元函数、缺省参数、内联函数(模块二,PS:需要用到重载函数)
一,哑元函数:一个函数的参数只有类型没有名字的则这个参数称之为哑元.类似于void fun(int); 功能:1保持向前的兼容性,比方说我们需要做成一个成品,然后成品是会不断的更新第一代第二代,当我们 ...
- 【C++初学者自学笔记二】函数重载(模块一)
1.概念:同意作用域的一组参数列表不同,函数名相同的函数,这组函数叫函数重载(C语言是不能定义相同名称的函数,但是C++可以允许定义). 2作用:重载函数通常来命名一组功能相似的函数,这样做减少了函数 ...
- JAVA自学笔记05
JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...
- JAVA自学笔记06
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...
- 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境
<Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...
- 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...
- 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳
<Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...
随机推荐
- 2、介绍在TensorFlow当中使用不同的方式创建张量tensor
import tensorflow as tf from tensorflow.python.framework import ops ops.reset_default_graph() #开始一个计 ...
- Block Chain Learning Notes
区块链是什么 区块链技术是由比特币创造的,本文也将从比特币开始进行引导,一步一步告诉大家什么是区块链.如果你想立马知道区块链是什么,也可以直接转到文章末尾的区块链定义. 区块链,可能是当下最有前景又充 ...
- JavaScript ES5类 原型 原型链 组合、原型、寄生式继承
ES5类 原型 原型链 继承 JavaScript中,原型是相对于构造函数(类)的叫法(或者说概念),原型链是相对于构造函数(类)的实例对象的叫法. 对于JavaScript对象,如果在对象自身上找 ...
- AppBar 自定义顶部导航按钮 图标、颜色 以及 TabBar 定义顶部 Tab 切换
一.Flutter AppBar 自定义顶部按钮图标.颜色 leading 在标题前面显示的一个控件,在首页通常显示应用的 logo:在其他界面通常显示为返回按钮 title 标题,通常显示为当 ...
- 【转】通过python调用jenkins 常用api操作
原:https://www.cnblogs.com/L-O-N/p/11608220.html # -*- coding: utf- -*- import jenkins class TestJenk ...
- Python中的浅复制、深复制
参考 https://docs.python.org/3/library/copy.html?highlight=copy%20copy#copy.copy https://en.wikipedia. ...
- html 中js 如何给字符串加换行符
var str = 你好'+"\n"+ '世界'; 这种写法在html中是会被识别为"你好\n世界" 那么如何保证其这么写会被识别,只需要在该div的样式中加入 ...
- event.clientX和event.clientY
event.clientX.event.clientY 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条.IE事件和标准事件都定义了这2个属性 event.pageX ...
- java里自定义分页查询的尝试
public String list(){ try { LoginUser loginUser = getLoginUser();//获取当前登录用户 if(curpage<=0){ curpa ...
- Algorightm----DynamicProgramming
参考资料: 1. 告别动态规划,连刷40道动规算法题,我总结了动规的套路