C++从0到1的入门级教学(一)——C++初识
1 C++初识
1.1 入门
1.1.1 简介
既然是第一次学习,我们就使用大家初学任何编程语言都会用的"hello world"来揭开序幕吧。
//这是第一个程序
#include <iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
system("pause");
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
在C++中,我们用cout进行字符输出;用//来注释。C++对大小写敏感,所以写cout和COUT是不一样的。C++对拼写也敏感,名字该是怎么样就怎么样,不能拼写错。文件扩展名采用cpp
。类比python采用py
,java采用java
,C采用c
。
1.1.2 输入和输出
C | C++ |
---|---|
printf | cout |
scanf | cin |
在C++中也可以用C的输入输出关键字,但是必须添加C的头文件,即
stdio.h
。
cout拥有printf两大没有的优点
- cout可以智能辨认后面的是字符串还是整型变量,而printf不可以
- cout写起来少了两个字母。
1.1.3 头文件名
在下面的代码中我们会看到iostream,我们把这类文件叫做包含文件,又由于他们包含在其他文件中,所以我们叫头文件。在C语言里,头文件类如xxx.h
的,其带有后缀h,而在C++中,很多h后缀转为c前缀,意为他们是从c过渡来的;例如C语言中的math.h
,在C++中如果要引用他是用cmath
。当然,去掉了h后还是要加上名称空间来确定他到底指的是哪个头文件的。
1.1.5 名称空间
如果使用iostream而不是iostream.h,则应该使用下面的名称空间编译指令来使iostream中的定义对程序可用。即using namespace std
,这个叫做using编译指令,这个东西前面不细讲,后面再大为介绍,现在做一个了解。
名称空间的支持是C++的一大特性,其作用是让你编写大型程序以及将多个厂商现有的代码组合起来的程序更容易。
比如现在有两个函数,他们都叫cout,但是一个是Microsoft厂商提供的,一个是Pisc公司提供的,那他们两个做这个cout函数的时候,就可以给cout函数的定义放到一个名称空间里,比如Microsoft把cout函数放到一个叫做Microflop的名称空间中,那么记为Microflop::cout
;同样的Pisc公司也可以把他们的cout函数记为Piscine::cout
。
按照我们上面那么说的话,那么我们写代码的时候,cout(输出)和cin(输入)或者其他等等等都是要写成std::cout
,cin::cout
的。但是为了偷懒,我们既然都是用std对应的厂家做出来的工具,那么我们直接在开局声明using namespace std
,然后后面不写std::cout
,而是直接写cout
了。
实际上偷懒的写法在大型项目是要出问题的,但是我们在学习过程中写的都是练手的代码,所以不需要写那么麻烦。
更好的做法就是开局声明如下:
using std::cout;
using std::endl;
using std::cin;
- 1
- 2
- 3
这样的话就可以精确到你要用的是std的某个工具,而不用使用using namespace std
来让你以后用的工具全是std的。
1.2 注释
在代码中加一些说明和解释,编译器编译代码内容时,会自动忽略注释内容。方便自己或其他程序员阅读代码,其有两种格式。
单行注释:
//描述信息
通常放在一行代码的上方,或者一条语句的末尾,对该行代码进行说明
多行注释:
/*描述信息*/
通常放在一段代码的上方,对该段代码做整体说明
实际上/**/
是C-风格注释,在实际应用中应该尽量使用C++注释,因为这不涉及到结尾符号和起始符号的正确配对,所以他产生的问题很小。
注:如果想要在
Visual stdio
里面注释一大段可以采用快捷键crtl+k+c
1.3 变量
作用:给一段指定的内存空间起名,方便操作这段内存
语法:数据类型 变量名 = 变量初始值
int a = 10;
- 1
示例:
#include <iostream>
using namespace std;
int main()
{
//变量创建的语法: 数据类型 变量名 = 变量初始值
int a = 10;
cout << "a = " << a << endl;
system("pause");
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
在后面的第二章中,我们会着重讲到关于数据类型,到那时候,我们会更好地了解变量。
1.4 常量
作用:用于记录程序中不可更改的数据
1.4.1 C++定义常量两种方式
-
#define宏常量:
#define 常量名 常量值
【通常在文件上方定义,表示一个常量】
-
const修饰的变量:
const 数据类型 常量名 = 常量值
【通常在变量定义之前加关键字const,修饰该变量为常量,不可修改】
示例:
#include <iostream>
using namespace std;
//常量的定义方法
//1、#define 宏定义
//2、const修饰的变量
//1、#define 宏定义
#define Day 7
int main()
{
//2、const修饰的变量
const int a = 7;
cout << "一周总共有:" << a <<"天"<< endl;
system("pause");
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
1.5 关键字
作用:关键字是C++中预先保留的单词(标识符)
【注:在定义变量或者常量时候,不要用关键字】
C++关键字如下:
asm | do | if | return | typedef |
---|---|---|---|---|
auto | double | inline | short | typeid |
bool | dynamic_cast | int | signed | typename |
break | else | long | sizeof | union |
case | enum | mutable | static | unsigned |
catch | explicit | namespace | static_cast | using |
char | export | new | struct | virtual |
class | extern | operator | switch | void |
const | false | private | template | volatile |
const_cast | float | protected | this | wchar_t |
continue | for | public | throw | while |
default | friend | register | true | |
delete | goto | reinterpret_cast | try |
【提示:在给变量或者常量起名字的时候,不要用C++关键字,否则会产生歧义】
1.6 标识符命名规则
作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则
标识符不能是关键字
标识符只能由字母、数字、下划线组成
第一个字符必须为字母或下划线
标识符中字母区分大小写
- 1
- 2
- 3
- 4
【建议:给标识符命名时,争取做到见名知意的效果,方便自己和其他人阅读】
【注1:C++对于名称的长度没有限制,名称中所有的字符都有意义,但有些平台有长度限制】
【注2:以两个下划线打头或以下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符】
注1和注2和前面提到的规则有所不同,因为使用像_time_stop或 _Dount 这样的名称不会导致编译器错误,而会导致行为的不确定性。换句话说就是不知道输出的结果是什么 。不出现编译器错误的原因是,这样的名称虽然是非法的,但是要留给实现使用。
文章来源: blog.csdn.net,作者:ArimaMisaki,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/chengyuhaomei520/article/details/123654456
- 点赞
- 收藏
- 关注作者
评论(0)