/*第一个C++程序*/
#include <iostream>
using namespace std; /*定义一个可视化*/
int main(void)
{
cout<<"Come up an C++"<<endl;
cout<<"You won't regret it"<<endl;
return 0;
}
对于一个C++ 程序主要包含以下元素:
//
或者是 /* */
标识#include
int main()
using namespace
{ }
括起来cout
工具显示消息的语句main()
函数的return
语句main()
函数头main() 被启动代码调用,而启动代码是编译器添加到程序中。
函数头描述
main()
和OS(UNIX/Linux、Windows、mac os等)直接的接口
。
空括号的main()
不接受任何参数。
int main(void)
{
statement
return 0;
}
main()
函数描述了函数的行为。同时也构成了两部分的 函数定义(function definition)
:第一行int main()
函数叫做 函数头(function heading)
,花括号({和})中包括的部分叫 函数体
。
函数体:指出函数应做什么的计算机指令。
在C++中,每条完整的指令叫做语句
。所有的语句都是以 分号
结束。
main()
中最后一条语句叫做 返回语句(return statement)
,结束main()函数。
⚠️注意:C++程序通常是以main()
函数开始执行,如果没有,程序不完整,则编译器会指出未定义main()函数
。
大小写都必须准确
不需要
main()函数
的特殊情况: 1. Windows中的动态链接(DLL)
模块。 2. 单片机或机器人芯片
C++中的注释以 双斜杠(//)
打头。以行尾
作为结束。
注释的作用:为程序提供解释说明,使得程序通俗易懂。
通常标识程序的一部分或者是标识代码的某个方面。
注意点:编译器不会运行,会直接忽略注释。
C++也可以识别C语言的注释
C语言风格的注释
多行注释
:符号/*
和 */
之间,以 */
作为注释的结束。单行注释
:以 双斜杠(//)
开始,行尾
作为结束。如果程序要使用C++输入或输出工具时,必须使用两行代码:
#include <iostream>
using namespace std;
使用了 #include
作为了预编译指令,也就是所谓的预处理器指令。
预处理器的操作:在源代码被编译之前,替换或添加文本。
例如:
#include <iostream>
像iostream这样的文件叫做 包含文件(include file)
———— 也被包含在其他的文件中,所以也叫做 头文件(header file)
。
头文件命名约定
头文件类型 | 约定 | 示例 | 说明 |
---|---|---|---|
C++旧式风格 | 以 | iostream.h | C++程序可以使用 |
C旧式风格 | 以 | math.h | C、C++ 程序可以使用 |
C++ 新式风格 | 没有扩展名 | iostream | C++程序可以使用,使用namespace std; |
转换后的C | 加上前缀c,没有扩展名 | cmath | C++ 程序可以使用,可以使用不是C的特性,如namespace std; |
如果程序中使用的是 iostream
,那么就需要使用名称空间编译指令来使得对程序可用。
using namespace std;
也叫做 using编译指令。
cout<<"Come up an C++"<<endl;
cout<<"You won't regret it"<<endl;
双引号
括起来的部分就是要打印的消息。
在C++中,使用双引号
括起来的一系列字符叫做 字符串
,由于若干个字符组合而成。
<<
指出信息流动的路径,cout是一个预定义的对象
。
<< 既可以是插入运算符,也可以是左移运算符。
典型的运算符重载的情况,通过重载,同一个运算符代表不同的含义。具体含义编译器会通过上下文来确定。
常见的运算符重载例子
&
----> 既表示地址运算符,又表示按位AND运算符。*
----> 既表示乘法,也表示对指针解除引用。endl
cout<<endl;
endl 是C++中的一个特殊符号,作用:重起一行。
在输出流中插入endl
使得屏幕光标移到下一行开头。
endl在头文件iostream
中定义,且位于名称空间std
中。
C++也也提供了早期C语言表示换行的方法;C语言符号\n
。
\n
被视为一个字符,名为换行符
,也就是C++中的endl的重起一行
。
显示字符串时,在字符串中包含换行符,而不是在末尾添加endl,可减少输入量。
/*两个语法都是一样的,都是:重起一行*/
cout<<"\n";
cout<<endl;
C++中源代码的风格遵循以下规则:
开始花括号
和一个结束花括号
,两个花括号各占一行。圆括号周围没有空白
。程序代码例子:
#include<iostream>
using namespace std;
int main()
{
int carrots; // 声明一个整型变量
carrots = 25; // 给变量赋值
cout<<"我有 "<<carrots<<" 个carrots."<<endl;
carrots = carrots - 1; // 对变量进行修改
cout<<"快看!快看!现在,我有 "<<carrots<<" 个carrots!"<<endl;
return 0;
}
在C++中,首次使用变量时,必须声明
。可以避免因拼写错误而难以发现错误。
声明通常指出要存储的数据类型和程序对存储在内存里的数据使用的名称。
程序中的声明语句叫作定义声明
语句,简称定义
。定义会使得编译器为变量分配内存
。
⚠️注意:声明不一定是定义。
赋值语句将值赋给存储单元。
符号 =
叫作赋值运算符
。👉 小Tips:C++中允许连续使用赋值运算符。
赋值是从右向左
进行。
cin
使用 >>
运算符从输入
流中抽取字符。
可以将通过键盘输入的一列字符(即输入)转换为接收信息的变量能够接受的形式。
cout
的对象属性包含一个插入运算符 <<
,将右侧的信息插入到输出流中。
<< 运算符可以进行多条输出语句的拼接。
类是C++ 面向对象编程(OOP)
的核心概念之一。
类是用户定义的一种数据类型。
要定义类,需要描述它能够表示什么信息
和可对数据执行什么操作
。
类定义描述的是:数据格式
及其用法
,而对象
则是根据数据格式规范
创建的实体
。
#### 两个类cin类
和 cout类
cin
类:istream类对象
cout
类:ostream类对象
,ostream类定义
描述了ostream对象
表示的数据
以及对它执行的操作
。两个类没有被内置到编译器中。注意点:类
描述了一种数据类型的全部属性(包括使用它执行的操作)
,对象
则是根据描述创建的实体
。
两种C++函数
有返回值的函数将生成一个值,而值将赋值给变量或其他的表达式中使用。
参数
是发送给函数的信息, 返回值
是从函数中发送回去的值。
👉 小Tips:对于C++编译器而言,函数的参数类型和
返回值类型必
须一致
。
⚠️注意:C++程序应当为程序中使用的每个函数提供原型。
函数原型结尾必须以
分号(;)
结束。如果省略分号,编译器则认为是函数头
,要求提供定义该函数的函数体。
不要混淆函数原型和函数定义
函数原型
只描述函数接口
。函数定义
包含函数的代码
。
👉 小Tips:首次使
用函数之前提供原型,
一般把原型放在 main()函数定义前
面。
对于库函数,在使用之前必须提供其原型,通常把原型放在main()定义之前。
一个函数头 + 花括号的函数体
。```cpp
type functionname(arguementlist)
{
statements
}
```C++ main()
函数头。⚠️注意:关键字是专用词,不能用作他用。
return不能用作变量名,double不能用作函数名。
有返回值的函数,使用关键字return
来提供返回值,并结束函数。
让程序访问名称空间std的4种方法
using namespace std;
放在函数定义之前
,让文件种所有的函数都能够使用名称空间std
中所有的元素。using namespace std;
放在特定的函数定义之前
,让该函数能够使用名称空间std中
的所有元素。using std::cout
;编译命令,而不是 using namespace std;
让该函数能使用指定的元素,如cout。编译指令using
,而在需要使用名称空间std
中的元素是,使用前缀std::
。GitHub地址:https://github.com/SolerHo/cpp-Primer-Plus-6e-Notes/blob/master/Chapter02/README.md
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。