第二章  开始学习C++

2.1  main函数

简单代码如下:

#include <iostream>
int main()
{
//This is my first program
using namespace std;
cout << "Hello C++!" << endl;
return 0;
}

C++中所有的语句都以分号(;)结束。return 0;叫做返回语句。

2.1.1  作为接口的函数头

函数头描述了函数与调用它的函数的接口。函数头包含函数返回类型、函数名和参数列表。

在C++中int main(void)和int main()等效。

在C中int main()意味着对是否接受参数保持沉默。

2.1.2  为什么main不能用其他名称

C++程序必须包含一个名称为main的函数,这个名称为main的函数为程序的入口。

不过也存在例外。Windows编程中,程序并不是以main函数作为入口。

2.1.3  C++注释

C++风格的注释采用//

C风格的注释采用/*…*/,后来C++也融合了这种方式。但是应当尽量避免使用这种风格的注释,因为这样的注释会要求左右的匹配,容易出现问题。

2.1.4  预处理器

程序中#include <iostream>是预处理指令,表示编译之前要包含iostream这个文件到程序的开始位置。

2.1.5  头文件的命名

C++虽然完全融合了C语言,不过应当尽量使用C++风格的文件。下表为旧式风格的文件命名和新风格的文件命名。

C++旧式风格

以.h结尾

例如iostream.h

C旧式风格

以.h结尾

例如string.h

C++新风格

没有扩展名

例如iostream

C新风格

没有扩展名,加上前缀c

例如cstring

2.1.6  命名空间

为了解决不同厂商提供的函数库可能存在同名函数的问题,C++提出命名空间的解决方案。上述代码中using指令显示指定要采用std名称空间。如果使用using指令,要在每个函数或者变量之前加入std::前缀(作用域限定符)。

2.2  C++语句

2.2.1  声明语句

C++是类型严格的编程语言,在使用变量之前要先声明变量,以告知编译器该变量的类型,声明语句一般为:type name; 如int i;

2.2.2  赋值语句

赋值语句的作用是为变量提供数值。赋值语句的格式为:name = express; 如i = i + 1;

2.2.3  其他语句

其他语句还有函数调用语句,表达式语句等。

2.3  函数

2.3.1  函数格式

函数的一般格式为

type functionname(argumentlist)
{
Statements
}

2.3.2  函数声明

如果在函数体的定义之前调用该函数,编译器会报出未识别的标识符的错误。原因是编译器不能提前预知函数名。解决方案是在函数的调用之前加入该函数的函数头,来声明该函数。这样编译器就会提前知道所使用的标识符为函数,并且知道函数的返回类型和参数列表。

第二章 开始学习C++的更多相关文章

  1. 逆向基础 C++ Primer Plus 第二章 开始学习C++

    C++ Primer Plus 第二章 开始学习C++ 知识点梳理 本章从一个简单的C++例子出发,主要介绍了创建C++程序的步骤,以及其所包含的预处理器编译指令.函数头.编译指令.函数体.注释等组成 ...

  2. 《C++Primer》第五版习题答案--第二章【学习笔记】

    C++Primer第五版习题解答---第二章 ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/9 第二章:变量和基本类型 练习2.1: 类 ...

  3. [第二章]c++学习笔记6(复制构造函数在各个编译器中的表现)

    visual studio结果 dev c++结果 两者的输出有所不同 原因:dev c++编译对这个过程进行了优化,因为直接return对象给a,为节省时间所以不生成临时对象,所以结果为10. 注: ...

  4. [第二章]c++学习笔记5(构造函数和析构函数调用时机)

    示例函数 注:输出并不一定从main函数开始,如全局对象的初始化在main函数前执行,如构造函数中存在输出,则从构造函数的输出开始 此处6被类型转换构造函数的存在转换为临时对象赋值,而在这个过程结束后 ...

  5. [第二章]c++学习笔记5(类型转换构造函数)

    使用例 析构函数 使用例 析构函数和数组 delete运算符导致析构函数的调用

  6. [第二章]c++学习笔记4(复制构造函数)

    性质 (1)只有一个参数,即被同类对象的引用. 注 起作用的三种情况 注 常量引用参数

  7. [第二章]c++学习笔记3(构造函数)

    成员函数的一种 (1)名字与类名相同,可以有参数,不能有返回值(void也不行) (2)作用是对对象初始化,如给成员变量赋初值 (3)如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数( ...

  8. [第二章]c++学习笔记2(类和对象的基础3)

    隐藏的概念 隐藏的作用 使用例 成员函数的重载与缺省(附使用例) 注意事项

  9. [第二章]c++学习笔记1(类和对象的基础2)

    类的成员函数可和类的定义分开写 类成员的可访问范围(private,public,protected) 具体使用方法 使用例

随机推荐

  1. select,epoll的比较

    机制: select:只支持水平触发(数据不处理完无限通知) epoll:支持水平触发和边缘触发(仅通知一次) 单进程监控FD个数 select: 由FD_SETSIZE设置,默认值是2048.在大量 ...

  2. SSIS 64位环境访问Oracle11g

    SSIS 为了要能够在64位的机器上面让SSIS存取Oracle,当然需要安装64位的Oracle Provider,但是遇到最大的问题在于SSIS在执行的时候分成两种组件,分别是DTExec.exe ...

  3. Winform开发--控件

    WinForm控件开发总结目录 WinForm控件开发总结目录 WinForm控件开发总结(一)------开篇 WinForm控件开发总结(二)------使用和调试自定义控件 WinForm控件开 ...

  4. [设计模式3]--工厂(Factory)模式

    原文出处:http://blog.csdn.net/lwbeyond/article/details/7528309 工厂模式属于创建型模式,大致可以分为三类,简单工厂模式.工厂方法模式.抽象工厂模式 ...

  5. 分享十个CSS3鼠标滑过文字动画特效

    介绍10组基于CSS3的鼠标滑过文字动画特效,有上凸.下凹等文字动画.这些炫酷的CSS3文字效果可以让网页变得更加绚丽.效果图如下: 在线预览   源码下载 实现的代码. html代码: <h2 ...

  6. spring security源码分析之web包分析

    Spring 是一个非常流行和成功的 Java 应用开发框架.Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案.一般来说,Web 应用的安全性包括 ...

  7. Python Counter()计数工具

    Table of Contents 1. class collections.Counter([iterable-or-mapping]) 1.1. 例子 1.2. 使用实例 2. To Be Con ...

  8. c#读写ini配置文件示例

    虽然c#里都是添加app.config 并且访问也很方便 ,有时候还是不习惯用他.那么我们来做个仿C++下的那种ini配置文件读写吧     其他人写的都是调用非托管kernel32.dll.我也用过 ...

  9. Blending(融合)

        Src Pixesl: 源像素 : 指的是当前光栅化产生的值     Dst Pixels 目标像素.指的是先前渲染存储在RT中的值     可以用来实现那些效果,诸如水,玻璃 以及其他的,( ...

  10. recent.css常用的页面初始化样式

    <style> @charset "utf-8"; body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form ...