【C++】开始学习C++

【C++】开始学习C++

  • 0 更新
  • 1 第一个C++程序
    • 1.1 示例
    • 1.2 分析
    • 1.3 main()函数
      • 1.3.1 函数结构
      • 1.3.2 注意
    • 1.4 C++注释
    • 1.5 头文件
    • 1.6 名称空间
    • 1.7 其他
      • 1.7.1 endl
      • 1.7.2 关于空格
      • 1.7.3 C++代码风格
  • 2 C++语句
    • 2.1 示例1
    • 2.2 运行结果
    • 2.3 分析

0 更新

  • 2019年3月29日 创建

1 第一个C++程序

1.1 示例

//myfirst.cpp -- display a message

#include                          //预处理指令
int main()                                  //函数头
{                                           //函数体开始
    using namespace std;                    //使定义有效
    cout << "Come up and C++ me some time.";//输出消息
    cout << endl;                           //开始新的一行
    cout << "You won't regret it!" << endl; //输出更多消息
    return 0;                               //终止main()函数
}                                           //函数体结束

运行结果:
【C++】开始学习C++_第1张图片

1.2 分析

这段代码示例非常简单,只包含一个main()函数。myfirst.cpp示例主要包含下述元素:

  • 注释,由前缀//标识。
  • 预处理器编译指令#include。
  • 函数头:int main()。
  • 编译指令using namespace。
  • 函数体,用{和}括起。
  • 使用C++的cout工具显示消息的语句。
  • 结束main()函数的return语句。

1.3 main()函数

1.3.1 函数结构

下图清晰的展示了main()函数的结构:
【C++】开始学习C++_第2张图片

1.3.2 注意

  • 如果main()函数结尾不加return 0也是可以的,但是这条规则只适用于main()函数。
  • 不建议将main()函数头写成main(),C++逐步淘汰了这种用法。
  • 避免将main()函数头写成void main(),尽管这适用很多系统。

1.4 C++注释

C++中注释有两种:

  • 行注释:一行中//后面的内容编译器将忽略
  • 块注释:/**/之间的内容将被编译器忽略

建议使用//进行注释

1.5 头文件

  • iostream包含了标准输入流和标准输出流,即cincout
  • C++库的头文件没有后缀名,这一点不同于C
  • 如果要在C++程序中使用标准C库的头文件,则其对应的头文件名应该在C头文件前加c,并去掉.h后缀,例如string.h对应cstring,math.h对应cmath

1.6 名称空间

C++中名称空间旨在让你编写大型程序以及多个厂商现有的代码组合起来的程序时更容易,它还有助于组织程序。例如:厂商A和B都编写了一个fun()函数,但是如果直接在程序里调用fun()的话,编译器将不会知道你调用的是哪个版本。

int main()
{
	fun();				//编译器不知道调用的是A的fun()还是B的fun()
	return 0;
}

为了解决上述问题,可以使用名称空间,将不同厂商的fun()函数放在不同的名称空间中,这样就可以通过名称空间来区分调用的是哪个。

int main()
{
	A::fun();			//调用A的fun()
	B::fun();			//调用B的fun()
	return 0;
}

cincout都处于名称空间std中,在程序中如果要使用它们,则必须使用using namespace std语句,否则,必须在访问时指定std::cinstd::cout才可以,如:

using namespace std;
cout << "Hello,World!" << endl;
cin.get();

或者还可以这样写:

std::cout << "Hello,World!" << std::endl;
std::cin.get();

个人觉得还是前者方便一点,注意这里的using是一个编译指令。
如果只想使用一个名称空间中的某个函数或变量,而不想引入整个名称空间的话,可以这样做:

using std::cout;						//引入std名称空间中的cout
cout << "Hello,World!" << std::endl;	//不能直接写endl,因为没有引入

有时这样做可以避免一些问题。

1.7 其他

1.7.1 endl

endl是个控制符(manipulator),作用和"\n"相似,起换行作用,但有些区别:

  • endl会立即显示在屏幕上,"\n"则不一定。
  • 一般显示引号括起来的字符串用"\n",其他情况用endl

1.7.2 关于空格

return 0;		//合法
return(0);		//合法
return0;		//不合法

int main();		//合法
int main ( );	//合法
intmain();		//不合法

不多说,自己体会~

1.7.3 C++代码风格

  • 每条语句占一行。
  • 每个函数都有一个开始花括号和结束花括号,这两个花括号各占一行。
  • 函数中的语句都相对于花括号进行缩进。
  • 与函数名称相关的圆括号周围木有空白。

前三条规则旨在确保代码清晰易读;第四条规则帮助区分函数和一些也使用圆括号的C++内置结构(如循环)。

2 C++语句

2.1 示例1

// carrots.cpp -- food processing program
// uses and displays a variable

#include 

int main()
{
    using namespace std;

    int carrots;            //声明一个整型变量

    carrots = 25;           //赋值
    cout << "I have ";
    cout << carrots;        //显示变量值
    cout << " carrots.";
    cout << endl;
    carrots = carrots - 1;  //修改变量值
    cout << "Crunch, crunch. Now I have " << carrots << " carrots." << endl;
    return 0;
}

2.2 运行结果

【C++】开始学习C++_第3张图片

2.3 分析

这个程序演示了C++中变量的定义、赋值、修改和输出显示的方法。注意,C++中所有的变量都必须“先定义,后使用!
声明包含定义声明引用声明,前者用来定义一个新变量,后者用来引用在其他地方定义的变量。这个示例中carrots变量的声明就是前者。

你可能感兴趣的:(C++)