一、第一个 C++ 程序

#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return ;
}

等价于:

#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!\n" ;
return ;
}

分析:

1.C++中 "\n" 与 endl 的区别是什么?

"\n" 表示内容为一个回车符的字符串。std::endl 是流操作子,输出的作用和输出 "\n" 类似,但可能略有区别。

std::endl 输出一个换行符,并立即刷新缓冲区。

例如:

std::cout << std::endl;

相当于:

std::cout << '\n' << std::flush;
或者
std::cout << '\n'; std::fflush(stdout);

由于流操作符 << 的重载,对于 '\n' 和 "\n",输出效果相同

对于有输出缓冲的流(例如cout、clog),如果不手动进行缓冲区刷新操作,将在缓冲区满后自动刷新输出。不过对于 cout 来说(相对于文件输出流等),缓冲一般体现得并不明显。但是必要情况下使用 endl 代替 '\n' 一般是个好习惯

对于无缓冲的流(例如标准错误输出流cerr),刷新是不必要的,可以直接使用 '\n'

2.在 C++ 中,分别使用.h 和.cpp 来定义一个类。

.h 中存放类的声明,函数原型(放在类的声明中)。

.cpp 存放函数体。

也就是说,一个存放声明(declaration),一个存放定义(definition)

如果我们在一个头文件里声明了一个函数,当我们需要定义这个函数(这个定义是唯一的,也就是只能定义一次),或者需要使用这个函数时,我们在 cpp 中需要 include 这个头文件。

同样地,如果我们在一个头文件里声明了一个类,当我们需要定义类里的成员函数,或者我们需要使用这个类时,我们在 cpp 中需要 include 这个头文件。

对于类的设计者来说,头文件就像他们和类的使用者的一个合同,编译器会强化这一合同,它会要求你在使用这些类里的函数或结构时必须要声明。

3.  "\n" 表示一个字符串,只有一个数据是回车符。

'\n' 表示一个字符

这两个在输出上是一样的!

关于 endl:

(1)在 C++ 中,终端输出换行时,用 cout<<......<<endl 与 "\n" 都可以,这是初级的认识。但二者有小小的区别,用 endl 时会刷新缓冲区,使得栈中的东西刷新一次,但用 "\n" 不会刷新,它只会换行,栈内数据没有变化。但一般情况,二者的这点区别是很小的,在大的程序中可能会用到。建议用 endl 来换行。

(2)endl 除了写 '\n' 进外,还调用 flush 函数,刷新缓冲区,把缓冲区里的数据写入文件或屏幕.考虑效率就用 '\n'。

(3)cout *lt;< endl; 除了往输出流中插入一个 '\n' 还有刷新输出流的作用。

cout << endl;
等价于:
\cout << '\n' << flush;

在没有必要刷新输出流的时候应尽量使用 cout << '\n', 过多的 endl 是影响程序执行效率低下的因素之一。

4.

<> 先去系统目录中找头文件,如果没有在到当前目录下找。所以像标准的头文件 stdio.h、stdlib.h 等用这个方法。

" " 首先在当前目录下寻找,如果找不到,再到系统目录中寻找。 这个用于 include 自定义的头文件,让系统优先使用当前目录中定义的。

5.  真正的开发过程中, 尽量避免使用 using namespace std; 等直接引入整个命名空间,否则会因为命名空间污染导致很多不必要的问题, 比如自己写的某个函数,名称正好和 std 中的一样, 编译器会不知道使用哪一个, 引起编译报错, 建议使用:

std::cout << "Hello World" << std::endl;

等直接由命名空间组合起来的全称。

6.显示多行文本:

#include <iostream>
using namespace std;
int main()
{
cout<<"...............\n"
<<"Hello, world!\n"
<<"Welcome to c++\n"
<<"...............\n";
return ;
}

7. cout 流速度较慢,如果速度过慢可以用 <stdio.h> 库中的 printf() 格式化输出函数,不需要 using namespace std;

它的格式为:

int __cdecl printf(const char * __restrict__ _Format,...);

程序实例:

#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}

注意:printf() 中不能使用 endl!

8.包含头文件 stdlib.h,并在主程序中加入 system("pause"); 可以  在程序运行完以后使黑框暂停显示,等待输入,而不是闪退

#include <stdlib.h>
#include <iostream> using namespace std; int main()
{
cout<<"Hello World "<<endl;
system("pause");
return ;
}

二、C++简介

标准的 C++ 由三个重要部分组成:

  • 核心语言,提供了所有构件块,包括变量、数据类型和常量,等等。
  • C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
  • 标准模板库(STL),提供了大量的方法,用于操作数据结构等。

三、基本语法

C++ 程序可以定义为对象的集合,这些对象通过调用彼此的方法进行交互

和Java 相似

c++注释

/* 这是注释 */

/* C++ 注释也可以
* 跨行
*/ // 一行注释

在 /* 和 */ 注释内部,// 字符没有特殊的含义。在 // 注释内,/* 和 */ 字符也没有特殊的含义。因此,您可以在一种注释内嵌套另一种注释

/* 用于输出 Hello World 的注释

cout << "Hello World"; // 输出 Hello World

*/

块注释符(/*...*/)是不可以嵌套使用的

C++程序结构

#include <iostream>
using namespace std; // main() 是程序开始执行的地方 int main()
{
cout << "Hello World"; // 输出 Hello World
return ;
}
  • C++ 语言定义了一些头文件,这些头文件包含了程序中必需的或有用的信息。上面这段程序中,包含了头文件 <iostream>
  • 下一行 using namespace std; 告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
  • 下一行 // main() 是程序开始执行的地方 是一个单行注释。单行注释以 // 开头,在行末结束。
  • 下一行 int main() 是主函数,程序从这里开始执行。
  • 下一行 cout << "Hello World"; 会在屏幕上显示消息 "Hello World"。
  • 下一行 return 0; 终止 main( )函数,并向调用进程返回值 0。

C++分号和语句块

每个语句必须以分号结束。它表明一个逻辑实体的结束。

x = y;
y = y+;
add(x, y);

语句块是一组使用大括号括起来的按逻辑连接的语句

{
cout << "Hello World"; // 输出 Hello World
return ;
}

C++标识符

一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9)

C++ 标识符内不允许出现标点字符,比如 @、& 和 %。C++ 是区分大小写的编程语言

 

三字符组

(暂时不常用,点击本小节标题 进入 菜鸟教程)

常见问题:

1.C/C++可以使用带有 $ 的标识符:

#include "stdio.h"

int main(){
int _2a$=0x99;
printf("%d\n",_2a$);
return ;
}

【$ 也可以放到前面】

#include "stdio.h"

int main(){
int $a=0x99;
printf("%d\n",$a);
return ;
}

2.现在大家买的C++教材可能会经常看到头文件是如下:

#include <iostream>

然后用现在较新的软件则会提示:无法打开源文件"iostream.h"。

这是因为现在新的软件都是采用标准 C 格式,而 iostream.h 是 VC6.0 使用的风格,也就是标准 C 格式还未出台之前的风格。

出现上述提示只需要进行如下修改:

#include <iostream>
using namespace std;

3.

4.

C++ 简介 基本语法 注释的更多相关文章

  1. JavaScript 简介及语法语句

    JS脚本语言 全称JavaScript:网页里面使用的脚本语言                      非常强大的语言 基础语法 注释语法    单行注释//    多行注释/**/输出语法     ...

  2. 一起学HTML基础-JavaScritp简介与语法

    简介: 1.什么是JavaScript? 它是个脚本语言,作用是使 HTML 页面具有更强的动态和交互性,它需要有宿主文件,它的宿主文件就是html文件.  JavaScript 是 Web 的编程语 ...

  3. JaveScript——简介、语法

    JS简介: 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司(已被Oracle ...

  4. JavaScript简介、语法

    一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...

  5. JavaScript基础(简介、语法)

    一.JavaScript简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司 ...

  6. CSS 简介、语法、派生选择器、id 选择器、类选择器、属性选择器

    CSS 概述 CSS 指层叠样式表 (Cascading Style Sheets) 样式定义如何显示 HTML 元素 样式通常存储在样式表中 把样式添加到 HTML 4.0 中,是为了解决内容与表现 ...

  7. python2.7入门---简介&基础语法

    Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构.基于上述原因, ...

  8. XML语言1.简介和语法

    一.什么是XML语言? XML 指可扩展标记语言(Extensible Markup Language) Xml是独立于软件和硬件的信息传输工具. XML 是一种很像HTML的标记语言. 但xml不是 ...

  9. 【3-28】javascript简介及语法

    一.简介 (一)定义:JavaScript是一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型,需有宿主文件:html文件. (二)作用:1.进行数据运算 2.对浏览器事件作出响 ...

随机推荐

  1. GitHub : Hello World

    这个写的太好啦,让我也没啥可以写的啦:http://www.open-open.com/lib/view/open1454507333214.html

  2. cookie的使用以及cookie的跨域名获取

    cookie存放容量4k左右,可设置过期时间. 1.cookie的封装使用 //设置cookies function setCookie(name, value) { var Days = 30; v ...

  3. docker安装mysql5.6和redis3.2

    环境:centos 6.8, docker version 1.7.1 1.docker安装mysql5.6 第一步:拉取镜像 docker pull mysql:5.6 第二步:docker run ...

  4. 3、Grid、GridSplitter 网格分离器、SharedSizeGroup 共享尺寸组

    Grid——网格布局,是WPF中最强大的布局容器,可以实现任何其他容器的布局.一个网格中只展示一个元素,若要展示多元素,可用容器 布局舍入:网格的边界有时会模糊,如三等分100宽度无法被整除.推荐设定 ...

  5. Jmeter(三) 从上传图片来入门Jmeter

    用Jmeter上传用户头像到人人网 先用抓包工具Fiddler把上传操作的报文抓取下来 开启Jmeter,在测试计划中创建一个线程组,取名为“图片上传” 再在线程组中创建一个HTTP请求 在请求报文中 ...

  6. Python3学习笔记(十二):闭包

    闭包定义: 在一个外函数中定义了一个内函数,内函数里引用了外函数的临时变量,并且外函数的返回值是内函数的引用.这样就构成了一个闭包. 我们先来看一个简单的函数: def outer(a): b = 1 ...

  7. python学习之路(12)

    迭代 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在Python中,迭代是通过for ... in来完成的,而 ...

  8. python学习之路(7)

    调用函数 Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http: ...

  9. 笔记本电脑如何同时上内外网(通过usb外接网卡实现虚拟机连外网)

    我们这里达成的方式不是内外网切换,而是真正意义上的同时上内网和外网 原理: 通过构建虚拟机,利用usb外接网卡(某宝某东都有售,价格在50大洋左右)使虚机连接外网,然后开启虚拟机的unity模式 准备 ...

  10. 选题 Scrum立会报告+燃尽图 01

    此作业要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/8683] 一.小组介绍 组长:贺敬文 组员:彭思雨 王志文 位军营 杨萍 ...