【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()函数功能相同外还有一 ...
随机推荐
- MyBatis 传一个类型为String的参数时常见问题及解决方法
MyBatis要求如果参数为String的话,不管接口方法的形参是什么,在Mapper.xml中引用时需要改变为_parameter才能识别 : <select id="selectB ...
- mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
mysql的引擎常用的有两个,一个MyISAM,另一个是InnoDB,mysql默认的为MyISAM,而InnoDB才是支持事务的.所以一般需要修改下,如何修改就不说了. 事务需要依赖数据库,好久没使 ...
- Django ORM 常用的13个方法
介绍一个可以以py脚本方式运行ORM操作的方法: 可在项目内新建个py文件,复制项目内manage.py文件中的以下代码: if __name__ == "__main__": o ...
- C语言:判断字符串是否为回文,-函数fun将单向链表结点数据域为偶数的值累加起来。-用函数指针指向要调用的函数,并进行调用。
//函数fun功能:用函数指针指向要调用的函数,并进行调用. #include <stdio.h> double f1(double x) { return x*x; } double f ...
- jupyter更换路径
初次使用anaconda中自带的jupyter,打开后默认工作路径为C:\Users\Admin(自己的用户名) 需要更换工作路径 更换方式如下: 打开C:\Users\Admin(自己的用户 ...
- Linux - TLCL
三. 文件系统中跳转 pwd - Print name of current working directory cd - Change directory ls - List directory c ...
- Pychram 运行程序在 run 窗口和 python console 窗口之间切换
有图有真相 第一步: 第二步:
- pdf.js的使用(2)新的需求已经出现,怎么能够停止不前(迪迦奥特曼主题曲)哈哈哈。^_^
来,咱们看图说事 按钮1,2是pdf.js自带的,分别对应顺时针旋转90度,逆时针旋转90度.于是乎又要我做一个旋转180度的按钮,诺!按钮3来了. 1.别怂,干!首先顺藤摸瓜,看按钮1,2的html ...
- Spring AOP 中 advice 的四种类型 before after throwing advice around
spring AOP(Aspect-oriented programming) 是用于切面编程,简单的来说:AOP相当于一个拦截器,去拦截一些处理,例如:当一个方法执行的时候,Spring 能够拦截 ...
- 第二十九节: Asp.Net Core零散获取总结(不断补充)
1. IWebHostEnvironment获取常用属性 (1).获取项目的根目录 _env.ContentRootPath 等价于 Directory.GetCurrentDirectory() ( ...