这是我写的第一个博客关于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++初学者自学笔记一】(把自己刚学到的东西做一下总结,如果有哪些地方不足请留言指正)的更多相关文章

  1. 初学者自学笔记-this的用法

    请注意:这是自学者的笔记,只是个人理解,并非技术分享,如有错误请指正. "this"的意思,简单而言,就是"这个",也就是"当前".谁调用它 ...

  2. 【C++初学者自学笔记三】哑元函数、缺省参数、内联函数(模块二,PS:需要用到重载函数)

    一,哑元函数:一个函数的参数只有类型没有名字的则这个参数称之为哑元.类似于void fun(int); 功能:1保持向前的兼容性,比方说我们需要做成一个成品,然后成品是会不断的更新第一代第二代,当我们 ...

  3. 【C++初学者自学笔记二】函数重载(模块一)

    1.概念:同意作用域的一组参数列表不同,函数名相同的函数,这组函数叫函数重载(C语言是不能定义相同名称的函数,但是C++可以允许定义). 2作用:重载函数通常来命名一组功能相似的函数,这样做减少了函数 ...

  4. JAVA自学笔记05

    JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...

  5. JAVA自学笔记06

    JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...

  6. 《Linux就该这么学》自学笔记_ch22_使用openstack部署云计算服务环境

    <Linux就该这么学>自学笔记_ch22_使用openstackb部署云计算服务环境 文章主要内容: 了解云计算 Openstack项目 服务模块组件详解 安装Openstack软件 使 ...

  7. 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第四章自学笔记 进程调度 By20135203齐岳 4.1 多任务 多任务操作系统就是能同时并发的交互执行多个进程的操作系统.多任务操作系统使多个进程处于堵 ...

  8. 《Linux内核设计与实现》课本第三章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第三章自学笔记 进程管理 By20135203齐岳 进程 进程:处于执行期的程序.包括代码段和打开的文件.挂起的信号.内核内部数据.处理器状态一个或多个具有 ...

  9. 《Linux内核设计与实现》课本第十八章自学笔记——20135203齐岳

    <Linux内核设计与实现>课本第十八章自学笔记 By20135203齐岳 通过打印来调试 printk()是内核提供的格式化打印函数,除了和C库提供的printf()函数功能相同外还有一 ...

随机推荐

  1. 【C语言】输入圆的半径,求解圆的周长和面积

    公式: C=2πr S=πr² 代码: #include<stdio.h> int main() { float r,PI; PI = 3.14159; printf("请输入圆 ...

  2. rapidxml读xml文件

    student.xml文件内容: int readXML(void) { rapidxml::file<> file("student.xml"); rapidxml: ...

  3. SmartAssembly批处理用法

    在SmartAssembly.exe根目录有个SmartAssembly.com . 在命令行执行SmartAssembly.com就能看到所有的命令参数了. 用SmartAssembly.exe建好 ...

  4. cmd创建用户开启3389命令

    1.创建用户chen Net user chen 1234566 /add 2.将用户chen添加到管理员组 net localgroup Administrators chen /add 3.开启3 ...

  5. Springboot学习:日志

    介绍 市面上的日志框架: JUL.JCL.Jboss-logging.logback.log4j.log4j2.slf4j.... 日志门面 (日志的抽象层) 日志实现 JCL(Jakarta Com ...

  6. mongodb副本集仲裁节点搭建

    服务器准备: 主节点192.168.100.106 从节点192.168.100.107 仲裁节点192.168.100.108 三台服务器: 关闭防火墙 service iptables stop ...

  7. 实现简单HttpServer案例

    <html> <head> <title>第一个表单</title> </head> <body> <pre> me ...

  8. 吴裕雄 python 神经网络——TensorFlow训练神经网络:花瓣识别

    import os import glob import os.path import numpy as np import tensorflow as tf from tensorflow.pyth ...

  9. 吴裕雄 python 神经网络——TensorFlow训练神经网络:不使用正则化

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data INPUT_NODE = 784 ...

  10. 【PAT甲级】1046 Shortest Distance (20 分)

    题意: 输入一个正整数N(<=1e5),代表出口的数量,接下来输入N个正整数表示当前出口到下一个出口的距离.接着输入一个正整数M(<=10000),代表询问的次数,每次询问输入两个出口的序 ...