(笔记)c++primer_第一章
来源:互联网 发布:日文翻译软件 编辑:程序博客网 时间:2024/06/05 00:55
第一章
1.1编写一个简单的C++程序
每个C++程序都包含一个或多个函数,其中一个必须命名为main。
一个函数的定义包含四部分:
- 返回类型
- 函数名
- 一个括号包围的形参列表
- 函数体
main函数的返回类型必须为int.
在大多数系统中,main的返回值被用来指示状态。返回0表示成功,非0的返回值得含义由系统定义,通常用来指出错误类型。
类型:
一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算。
1.1.1 编译、运行程序
命令行界面(大部分编译器,包括集成IDE的编译器,都会提供命令行界面)
集成开发环境(Tntegrated Developed Environment,IDE)
程序源文件命名约定
大部分编译器都要求程序源码存储在一个或多个文件中。程序文件通常被称为源文件(source file)。
大部分系统中,源文件名字以一个后缀结尾。后缀告诉系统这个文件是一个c++程序。不同编译器使用不同的后缀名约定,最常见的包括.cc,.cxx,.cpp,.cp及.c。
从命令行运行编译器
使用命令行界面,通常一个控制台窗口内编译程序。
假定main程序保存在文件prog1.cc中,编译命令为:
$ CC prog1.cc
- CC是编译器程序的名字,$是系统提示符
- 编译器生成一个可执行文件(Windows系统将这个可执行文件命名为prog1.exe)
在Windows中运行可执行文件,需要提供可执行文件的文件名,可以忽略其扩展名.exe:
$ prog1
在一些系统中,即使文件就在当前目录或文件夹中,也必须显示指出文件位置:
$ .\prog1
访问main返回值的方法依赖于系统。在UNIX和Windows系统中,执行完一个程序后,都可通过echo命令获得返回值。
在Windows系统中查看状态:
$ echo %ERRORLEVEL%
最常用的编译器是GNU编译器和微软visual studio编译器。
默认情况,运行GNU编译器命令时g++:
>$ g++ -o prog1 prog1.cc
$是系统提示符。-o prog1是编译器参数,指定了可执行文件。在Windows系统中,此命令生成一个名为prog1.exe的执行文件。如果省略了-o prog1参数,则会生成一个名为a.exe的可执行文件。
裕兴微软visual studio2010编译器的命令为:
>C:Users\me\Programs>/EHsc prog1.cpp
C:Users\me\Programs>是系统提示符,/EHsc是编译器选项,用来打开标准异常处理。生成的可执行文件也为prog1.exe。
编译器通常包含一些选项,能对有问题的程序结构发出警告。习惯在GNU编译器中使用-Wall选项,在微软编译器中使用/W4。
1.2初识输入输出
C++未定义任何输入输出语句,而是包含了一个全面的标准库来提供IO机制。
iostream库
iostream库包含两个基础类型:istream和ostream,分别表示输入流和输出流。
一个流就是一个字符列,从IO设备独处或写入IO设备。
标准输入输出对象
标准库定义4个IO对象:
- cin(istream类型对象),也被称为标准输入
- cout(ostream类型),标准输出
- cerr,输出警告和错误消息
- clog,输出程序运行时一般性信息
一个使用IO库的程序
#include<iostream>int main(){ std::cout<<"Enter two numbers:"<<std::endl; int v1=0; v2=0; std::cin>>v1>>v2; std::cout<<"The sum of"<<v1<<"and"<<v2<<"is"<<v1+v2<<std::endl; return 0;}
#include < iostream >
使用iostream库,<>中的名字指出了一个头文件。每个使用标准库设施的程序都必须包含相关头文件。一般讲一个程序的所有#include指令都放在源文件的开始位置。
向流写入数据
std::cout<<”Enter two numbers:”<<std::endl;
<<左侧运算对象必须是一个ostream对象,右侧是要打印的值。
<<运算符返回其左侧运算对象。
std::cout<<”Enter two numbers:”<<std::endl;
等价于
(std::cout<<”Enter two numbers:”)<<std::endl;
等价于
std::cout<<”Enter two numbers:”;
std::cout<<std::endl;
endl是一个被称为操纵符的特殊值,写入endl效果是结束当前行,并将于设备关联的缓冲区中的内容刷到设备中。
使用标准库中的名字
std::指出cout,endl是定义在名为std的命名空间中的。
标准库定义的所有名字都在命名空间std中。
从流读取数据
输入运算符>>接受一个istream作为左侧运算对象,接受一个对象作为其右侧运算对象。
std::cin>>v1>>v2;
等价于
(std::cin>>v1)>>v2;
等价于
std::cin>>v1;
std::cin>>v2;
1.3 注释简介
注意:
+ 注释界定符不能嵌套
+ 单行注释符中任何内容都会被忽略,包括嵌套的注释对
- (笔记)c++primer_第一章
- C++Primer_笔记_异常处理
- c++primer_类
- C++Primer笔记 第一章
- 【C程序设计语言】第一章 - 笔记
- c++primer 第一章笔记
- C++primer_顺序容器之string操作
- C++primer_关联容器之map
- c++primer_第二部分学习的感觉
- C++Primer_范围for处理多维数组
- C++Primer_第7章_类
- 《C程序设计语言》笔记----第一章 导言
- 《C和指针》笔记(第一章)
- C Primer Plus笔记-第一章
- C++Primer 学习笔记 第一章 (快速入门)
- C++primer(第五版) 第一章 学习笔记
- 数据结构(C++)第一章
- 软件工程笔记(第一章)
- 第二课:Vue.js音乐播放器页面入口+header编写
- android studio使用git遇到的坑
- 深度学习:自然语言生成-集束搜索beam search和随机搜索random search
- JS函数调用的四种方法
- Interface与abstract类的区别
- (笔记)c++primer_第一章
- spring 事物
- 常用liunx命令
- github git命令
- numpy矩阵相关和线性代数linalg模块
- 用AFNetWorking下载文件
- 使用typedef定义struct的作用
- 将tf训练的权重保存为CKPT,PB ,CKPT 转换成 PB格式。并将权重固化到图里面,并使用该模型进行预测
- Java经典基础练习21-30