21天学通C++学习笔记(二):C++程序的组成部分
1. 预处理器编译指令
- 预处理器是一个在编译前运行的工具。
- 预处理器编译指令是向预处理器发出的命令,总是以磅字符#大头。
- #include让预处理器获取指定文件并将它们放在编译指令所处的位置。#include 或#include "自己创建的头文件"
- #define不再推荐用来定义常量
2. 程序的主体main()
- int main (int argc, char* argv[])
- 返回值必须是int,一般是0成功或-1出错,程序员可以自行定义不同值反应的不同状态
- 参数列表
* 可以有,也可以没有
* 需要提供让用户能够修改程序行为的选项时,需要命令行参数
* 输入字符串时,不要有空格,会当成两个参数
3. 名称空间
- 降低命名冲突的风险,或导致编译不通过(C#可能会找错)
- 可以在函数中使用using(C#中只能在文件最外层或者namespace内类定义外使用)
- 可以只using要使用的元素:using std::cout;
4. 注释
- //为单行的整行注释
- /和/之间为多行注释,必须成对出现
- 对程序中的复杂算法和复杂部分的工作原理进行解释,要以其他程序员可以理解的方式。
- 不要用注释来解释显而易见的代码;不要因为有注释代码就写的难理解;改代码时也要更新注释。
5. 函数
- 函数让您能够将应用程序划分成多个功能单元,并按您选择的顺序调用。
- 参数列表
- 返回值:要使用内层函数的返回值;如果函数无需做任何决策,也无需返回成功/失败状态,可以将其返回类型声明为void。
- 调用前要先声明函数,或者直接把函数定义在调用前(较新的编译器)
- 可以递归
- 可以包含多条返回语句
- 可以重载
- 还可声明为内联的:在这种情况下编译器将展开函数调用
6. 使用std::cin和std::cout执行基本输入输出操作
- 输入输出设备包含:鼠标、键盘、屏幕(文本、图形)、打印机、文件系统等。
- 使用std::endl;作为换行符:std::cout << "123" << std::endl;
- cin如果只用了一个变量,只会存储空格前的第一部分字符串,如果有空格可以使用getline()
- cin可以用一条语句将用户输入的空格间隔的字符串各部分分别存储到多个变量:std::cin >> Var1 >> Var2
7. 其他
21天学通C++学习笔记(二):C++程序的组成部分的更多相关文章
- 21天学通C++学习笔记(九):类和对象
1. 类和对象 现实中的人等事物往往具备一些特征并且可以做某些事情,要在程序中模拟这些事物,需要一个结构,将定义其属性(数据)以及其可用这些属性执行的操作(函数)整合在一起.这种结构就是类,而这种结构 ...
- 21天学通C++学习笔记(八):指针和引用
1. 简述 C++最大的优点之一是,既可以用它来编写不依赖于机器(主要是内存)的高级应用程序,又可以用它来编写与硬件紧密协作的应用程序. 事实上C++让您能够在字节和比特级调整应用程序的性能,而要编写 ...
- 21天学通C++学习笔记(七):函数
1. 为什么需要函数 可将应用程序的内容划分成依次调用的逻辑块,让您能够划分和组织程序的执行逻辑,有助于提高可重用性. 2. 基本概念 是子程序,可接受参数,可有返回值. 要让函数执行其任务,必须调用 ...
- 21天学通C++学习笔记(四):数组和字符串
1. 数组 概念 是一组元素 这些元素是相同的数据类型 按顺序存储到内存中 目的是避免在业务需要时去重复声明很多同类型的变量 初始化 分别初始化:int i [5] = {1,2,3,4,5}; 全部 ...
- 21天学通C++学习笔记(三):变量和常量
1. 简述 内存是一种临时存储器,也被称为随机存取存储器(RAM),所有的计算机.智能手机及其他可编程设备都包含微处理器和一定数量的内存,用地址来定位不同的存储区域,像编号一样. 硬盘可以永久的存储数 ...
- 21天学通C++学习笔记(一):入门
1. 基础概念 1.1 编程语言 旨在让人更容易得使用计算资源,充分利用电脑,不用人做一些重复劳动或持续参与. 1.2 可执行文件 是可运行的成品,应按程序员希望的那样做. 1.3 生成可执行文件的步 ...
- C#学习笔记二:C#程序结构
从最简单的HelloWorld开始入手,这是一个最低限度的C#程序结构. C# Hello World 示例 一个C#程序主要由以下几部分组成: 命名空间声明 一个类 类方法 类属性 一个Main方法 ...
- 21天学通PythonPDF高清完整版免费下载|百度云盘
百度云盘:21天学通PythonPDF高清完整版免费下载 提取码:nqa9 豆瓣评分: 书籍封面: 内容简介 · · · · · · <21天学通Python>全面.系统.深入地讲解了P ...
- WPF的Binding学习笔记(二)
原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...
随机推荐
- 各种Java项目环境搭建-文档引用汇总记录
springmvc环境搭建 1.如何用Maven创建web项目(具体步骤) 2.springmvc环境搭建,一步一步超简单
- [PHP] - Laravel - CSRF token禁用方法与排除验证csrf_token的url设置
laravel5.1排除验证csrf_token的url设置 <?php namespace App\Http\Middleware; use Illuminate\Foundation\Htt ...
- Oracle 11G的间隔(INTERVAL)分区
-- Create table create table MS_BIGTABLE_LOG ( record_date DATE, col_1 VARCHAR2(), col_2 VARCHAR2() ...
- Py修行路 python基础 (二十一)logging日志模块 json序列化 正则表达式(re)
一.日志模块 两种配置方式:1.config函数 2.logger #1.config函数 不能输出到屏幕 #2.logger对象 (获取别人的信息,需要两个数据流:文件流和屏幕流需要将数据从两个数据 ...
- maven项目依赖包问题
问题 maven传递依赖 解决方案 前段时间,开发中遇到一个关于maven依赖包的问题:由于业务需要,支付网关对账代码中的slf4j-api包需要更新,原包为1.5.8版本,需要更新到1.6.4版 ...
- Color the ball (线段树的区间更新问题)
N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色.但 ...
- C# 堆和栈的区别?
解释1.栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义:堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小 解释2. 存放在栈中时要管存储顺 ...
- 回车换行0x0D和0x0A 小谈
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这 ...
- codeforce452DIV2——F. Letters Removing
题意:给一个字符串和m个操作,每次给出l,r,c,把字符串中l-r这段区间的字符为c的字符删掉,求最后的字符串.(n,m<=2e5)线段树.注意这个区间修改和普通区间修改的区别. 他们都是用树状 ...
- 【HDU5391】Zball in Tina Town
[题目大意] 一个球初始体积为1,一天天变大,第一天变大1倍,第二天变大2倍,第n天变大n倍.问当第 n-1天的时候,体积变为多少.注意答案对n取模. [题解] 根据威尔逊定理:(n-1)! mod ...