C++基础入门

1 C++初识

据说 C++ 很牛批,那我们第一个程序就写 Hello World 程序吧,毕竟这个够经典。那C++程序创建分为哪几步呢?

1.1 第一个C++程序

编写一个C++程序总共分为4个步骤

  • 创建项目
  • 创建文件
  • 编写代码
  • 运行程序

1.1.1 创建项目

​ Visual Studio是我们这次用来编写C++程序的主要工具,我们先将它打开创建一个新项目。

1.1.2 创建文件

右键源文件,选择添加->新建项

给C++文件起个名称,然后点击添加即可。

这样就将第一个C++项目创建完成啦,就是这么简单~
那接下来呢?是不是可以写代码啦,跃跃欲试中…

1.1.3 编写代码

#include<iostream>
using namespace std;int main() {cout << "Hello world" << endl;system("pause");return 0;
}

第一个hello world程序写完了,那运行看下效果如何吧!

1.1.4 运行程序

这样第一个C++程序就写完啦,运行成功。此处应该有掌声呦,给自己一点鼓励~~

上面的代码具体是什么意思呢?怎么根据自己的idea编写实现功能呢?别着急,一步步来,下面我们来讲讲C++是如何编写代码的。

1.2 注释

自己写代码当然少不了写注释啦,这样别人才能看懂你写的代码的意思。

作用:在代码中加一些说明和解释,方便自己或其他程序员程序员阅读代码

两种格式

  1. 单行注释// 描述信息

    • 通常放在一行代码的上方,或者一条语句的末尾,对该行代码说明
  2. 多行注释/* 描述信息 */
    • 通常放在一段代码的上方,对该段代码做整体说明

那写的注释编译器会不会执行呢?
答案当时是…

不会,编译器在编译代码时,会忽略注释的内容。

1.3 变量

下面我们再讲讲C++程序中用到的自定义变量吧。

作用:给一段指定的内存空间起名,方便操作这段内存

语法数据类型 变量名 = 初始值;

示例:

#include<iostream>
using namespace std;int main() {//变量的定义//语法:数据类型  变量名 = 初始值int a = 10;cout << "a = " << a << endl;system("pause");return 0;
}

这样就可以再内存中开辟空间,用来存储变量a啦。当然我们在创建变量的时候有一个一定需要注意的喔。是什么呢?

ps:C++在创建变量时,必须给变量一个初始值,否则就会报错。

1.4 常量

有了自定义的变量,那是不是有常量呢?of course!必须的!

作用:用于记录程序中不可更改的数据

C++定义常量两种方式

  1. #define 宏常量: #define 常量名 常量值

    • 通常在文件上方定义,表示一个常量
  2. const修饰的变量 const 数据类型 常量名 = 常量值

    • 通常在变量定义前加关键字const,修饰该变量为常量,不可修改

示例:

//1、宏常量
#define day 7int main() {cout << "一周里总共有 " << day << " 天" << endl;//day = 8;  //报错,宏常量不可以修改//2、const修饰变量const int month = 12;cout << "一年里总共有 " << month << " 个月份" << endl;//month = 24; //报错,常量是不可以修改的system("pause");return 0;
}

这就是C++中常见的两种定义常量的方法,是不是很简单~
so easy~

1.5 关键字

下面开始讲C++中的关键字,这个在C++中也是非常常见和重要的,注意认真听讲喔。

作用:关键字是C++中预先保留的单词(标识符)

上面我们讲了C++的自定义变量和常量,那我们自定义的变量或者常量名,可以用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++规定给标识符(变量、常量)命名时,有一套自己的规则

  • 标识符不能是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字符必须为字母或下划线
  • 标识符中字母区分大小写

小提示: 给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读。比如我们想要定义一个常量表示一年有12个月,那常量名就可以用Month表示啦~

2 数据类型

下面我们开始了解C++中数据类型。数据类型?这是个什么东东?满脸问号???

数据类型就是,C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存。例如上面例子上写的int啦。

还不明白?没事儿,下面就开始仔细讲讲这些是个什么鬼?

2.1 整型

作用:整型变量表示的是整数类型的数据

C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同

数据类型 占用空间 取值范围
short(短整型) 2字节 (-2^15 ~ 2^15-1)
int(整型) 4字节 (-2^31 ~ 2^31-1)
long(长整形) Windows为4字节,Linux为4字节(32位),8字节(64位) (-2^31 ~ 2^31-1)
long long(长长整形) 8字节 (-2^63 ~ 2^63-1)

看到这里,我推测上面的short,int, long 是不是都是C++中的关键字呢?

binggo 答对啦~ 成功记住了C++中的三个关键字。

2.2 sizeof关键字

那我们有办法知道定义的这些数据类型的占用内存空间大小吗?
当然,前辈大牛早就想到了,sizeof 应运而生。

作用: 利用sizeof关键字可以统计数据类型所占内存大小

语法: sizeof( 数据类型 / 变量)

示例:

int main() {cout << "short 类型所占内存空间为: " << sizeof(short) << endl;cout << "int 类型所占内存空间为: " << sizeof(int) << endl;cout << "long 类型所占内存空间为: " << sizeof(long) << endl;cout << "long long 类型所占内存空间为: " << sizeof(long long) << endl;system("pause");return 0;
}

整型占用空间结论:short < int <= long <= long long

上面说的都是整数类型,那圆周率能表示吗?纠结中。。。

下面我们就来说说小数浮点型怎么表示。

2.3 实型(浮点型)

作用:用于表示小数

浮点型变量分为两种:

  1. 单精度float
  2. 双精度double

两者的区别在于表示的有效数字范围不同。

数据类型 占用空间 有效数字范围
float 4字节 7位有效数字
double 8字节 15~16位有效数字

示例:

int main() {float f1 = 3.14f;double d1 = 3.14;cout << f1 << endl;cout << d1<< endl;cout << "float  sizeof = " << sizeof(f1) << endl;cout << "double sizeof = " << sizeof(d1) << endl;//科学计数法float f2 = 3e2; // 3 * 10 ^ 2 cout << "f2 = " << f2 << endl;float f3 = 3e-2;  // 3 * 0.1 ^ 2cout << "f3 = " << f3 << endl;system("pause");return 0;
}

哇喔!整数小数定义都学会了。关键字: short、int、long、long long、float、double
so easy!

我还记得第一个C++程序,输出的hello world。那这个不是数字,是什么类型的呢?

别着急,下面我们就开始。

2.4 字符型

先从简单的,字母‘a’开始。

作用: 字符型变量用于显示单个字符

语法:char ch = 'a';

当然单个字符肯定有注意事项哇。

注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号

注意2:单引号内只能有一个字符,不可以是字符串

上面的整数类型,浮点类型,我们都知道了占用的内存空间多大,那这个字符类型呢?

  • C和C++中字符型变量只占用1个字节。
  • 字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

示例:

int main() {char ch = 'a';cout << ch << endl;cout << sizeof(char) << endl;//ch = "abcde"; //错误,不可以用双引号//ch = 'abcde'; //错误,单引号内只能引用一个字符cout << (int)ch << endl;  //查看字符a对应的ASCII码ch = 97; //可以直接用ASCII给字符型变量赋值cout << ch << endl;system("pause");return 0;
}

ASCII码表格:

ASCII 控制字符 ASCII 字符 ASCII 字符 ASCII 字符
0 NUT 32 (space) 64 @ 96
1 SOH 33 ! 65 A 97 a
2 STX 34 " 66 B 98 b
3 ETX 35 # 67 C 99 c
4 EOT 36 $ 68 D 100 d
5 ENQ 37 % 69 E 101 e
6 ACK 38 & 70 F 102 f
7 BEL 39 , 71 G 103 g
8 BS 40 ( 72 H 104 h
9 HT 41 ) 73 I 105 i
10 LF 42 * 74 J 106 j
11 VT 43 + 75 K 107 k
12 FF 44 , 76 L 108 l
13 CR 45 - 77 M 109 m
14 SO 46 . 78 N 110 n
15 SI 47 / 79 O 111 o
16 DLE 48 0 80 P 112 p
17 DCI 49 1 81 Q 113 q
18 DC2 50 2 82 R 114 r
19 DC3 51 3 83 S 115 s
20 DC4 52 4 84 T 116 t
21 NAK 53 5 85 U 117 u
22 SYN 54 6 86 V 118 v
23 TB 55 7 87 W 119 w
24 CAN 56 8 88 X 120 x
25 EM 57 9 89 Y 121 y
26 SUB 58 : 90 Z 122 z
27 ESC 59 ; 91 [ 123 {
28 FS 60 < 92 / 124 |
29 GS 61 = 93 ] 125 }
30 RS 62 > 94 ^ 126 `
31 US 63 ? 95 _ 127 DEL

ASCII 码大致由以下两部分组成:

  • ASCII 非打印控制字符: ASCII 表上的数字 0-31 分配给了控制字符,用于控制像打印机等一些外围设备。
  • ASCII 打印字符:数字 32-126 分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。

别害怕,ASCII码表当然不需要我们记住了,过目不忘者请自便。

我们只要记住几个常见的就行啦,比如a代表97,A代表65。

2.5 转义字符

下面我们来讲讲一些特殊的字符含义吧~

作用: 用于表示一些不能显示出来的ASCII字符

现阶段我们常用的转义字符有:\n \\ \t

转义字符 含义 ASCII码值(十进制)
\a 警报 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
\\ 代表一个反斜线字符"" 092
代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
? 代表一个问号 063
\0 数字0 000
\ddd 8进制转义字符,d范围0~7 3位8进制
\xhh 16进制转义字符,h范围09,af,A~F 3位16进制

示例:

int main() {cout << "\\" << endl;cout << "\tHello" << endl;cout << "\n" << endl;system("pause");return 0;
}

刚刚说的hello world 呢?是什么类型呢?
看下去,答案即将揭晓~

2.6 字符串型

作用:用于表示一串字符

两种风格

  1. C风格字符串char 变量名[] = "字符串值"

    示例:

    int main() {char str1[] = "hello world";cout << str1 << endl;system("pause");return 0;
    }
    

注意:C风格的字符串要用双引号括起来

  1. C++风格字符串string 变量名 = "字符串值"

    示例:

    int main() {string str = "hello world";cout << str << endl;system("pause");return 0;
    }
    

注意:C++风格字符串,需要加入头文件==#include<string>==

好棒!不仅知道了hello world是什么类型,还学会了两种表示方法。

为自己点赞~下面我们趁热再学最后一个C++中常见的变量类型。

2.7 布尔类型 bool

作用: 布尔数据类型代表真或假的值

bool类型只有两个值:

  • true — 真(本质是1)
  • false — 假(本质是0)

bool类型占1个字节大小

示例:

int main() {bool flag = true;cout << flag << endl; // 1flag = false;cout << flag << endl; // 0cout << "size of bool = " << sizeof(bool) << endl; //1system("pause");return 0;
}

嗷嗷!原来bool类型是用来表示真假的,true就表示真,false就表示假。

那数字可以表示bool类型的嘛?

可以,记住咯,数字0表示false–假,非0数字均表示true–真

刚刚第一个程序,是输出了一句hello world,那能通过键盘输入吗?
下面就告诉你方法如何实现输入内容。

2.8 数据的输入

作用:用于从键盘获取数据

关键字: cin

语法: cin >> 变量

示例:

int main(){//整型输入int a = 0;cout << "请输入整型变量:" << endl;cin >> a;cout << a << endl;//浮点型输入double d = 0;cout << "请输入浮点型变量:" << endl;cin >> d;cout << d << endl;//字符型输入char ch = 0;cout << "请输入字符型变量:" << endl;cin >> ch;cout << ch << endl;//字符串型输入string str;cout << "请输入字符串型变量:" << endl;cin >> str;cout << str << endl;//布尔类型输入bool flag = true;cout << "请输入布尔型变量:" << endl;cin >> flag;cout << flag << endl;system("pause");return EXIT_SUCCESS;
}

好了,今天就讲到这吧。明天继续喔~

偷偷透露下,下期是关于程序运算符和程序流程结构喔~

创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

Dragon少年 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

【C++入门必看】C++从0到1入门编程相关推荐

  1. python单片机编程入门先学什么_编程入门必看:带你零基础了解编程和编程语言,入门应该学什么?...

    编程入门 什么是编程 我们通过有固定格式和固定词汇的"语言"来控制他人,让他人为我们做事情.语言有很多种,包括汉语.英语.法语.韩语等,虽然他们的词汇和格式都不一样,但是可以达到同 ...

  2. 编程入门必看:带你零基础了解编程和编程语言,入门应该学什么?

    什么是编程 我们通过有固定格式和固定词汇的"语言"来控制他人,让他人为我们做事情.语言有很多种,包括汉语.英语.法语.韩语等,虽然他们的词汇和格式都不一样,但是可以达到同样的目的, ...

  3. python基础教程书籍推荐-初学者python入门必看书籍推荐(上)

    随着最近Python的热度上涨,学习的人数也在增多,也因为Python这门语言的简短.易学.语言优美的优点,吸引了很多人来学习它.初学者想要入门,就必须先通过阅读,学习大量的理论知识对Python有一 ...

  4. arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 群里经常有朋友问arduino开发ESP8266的配置方法,今天在之前的文章基础上, ...

  5. 200528更新arduino开发ESP8266配置方法,入门必看,esp8266开发板库离线安装包package2.7.1...

    公众号关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 群里经常有朋友问arduino开发ESP8266的配置方法,今天(200528)在之 ...

  6. c++ stack用法 入门必看 超详细

    1.stack的作用 stack是一个比较简单易用的数据结构,其最大的特性就是先进后出.就好比一个桶,先放进出的数据就在底部,如果想要取出就先要把上面的数据取出,现在不懂没关系,看完本文就可以理解了. ...

  7. 笔记本计算机接口类型,小白入门必看!笔记本电脑常见接口都在这了

    原标题:小白入门必看!笔记本电脑常见接口都在这了 对很多没接触过或者刚接触笔记本电脑的朋友来说,笔记本电脑的接口是个比较令人头疼的问题,一是接口种类繁多,二是很多接口长得比较像,不易分辨,下面就给大家 ...

  8. 视频教程-【平面设计】设计入门必看-海报设计视频教程-UI

    [平面设计]设计入门必看-海报设计视频教程 教学产品线与企业合作项目负责人,移动互联学院教学总监,从事培训与UI/UED课程研发工作多年,拥有数万学员且平均薪资位居行业前列.曾就职于世界500强互联网 ...

  9. java 经典 实例_5个JAVA入门必看的经典实例

    入门必看的5个java经典实例,供大家参考,具体内容如下 1.一个饲养员给动物喂食物的例子体现java中的面向对象思想,接口(抽象类)的用处 package com.softeem.demo; /** ...

  10. [入门必看]数据结构4.2:串的模式匹配

    [入门必看]数据结构4.2:串的模式匹配 第四章 串 4.2 串的模式匹配 知识总览 4.2.1_朴素模式匹配算法 4.2.2_1_KMP算法 4.2.2_2_求next数组 4.2.3_KMP算法的 ...

最新文章

  1. 通过反射执行get、set方法
  2. python antlr4需要的python 版本_python多版本管理器pyenv
  3. 分层精品优秀电商海报模版|无需数量多,胜在精
  4. FL Studio软件隐藏优惠码分享,音乐制作必备,创作无限可能!
  5. 洛谷 P3063 [USACO12DEC]牛奶的路由Milk Routing
  6. 电脑微信双开 bat文件
  7. c#连续打印问题,即进销存销售单打印问题完美解决
  8. 苹果亮度自动调节怎么关闭_为何安卓自动亮度调节做不好?小米张国全释疑
  9. ubuntu 下 pkg-config 不可用的修复
  10. 怎么下载高清无水印的视频号作品?视频号下载要用什么工具?1分钟解决微信视频号下载
  11. 不借助第三方插件,用js画日历
  12. 以“文博珠宝管理系统”为例,分析信息管理系统在物流分销中的应用
  13. 从《乱世王者》看腾讯SLG手游如何搭建完整安全服务
  14. Zooming Slow-Mo: Fast and Accurate One-Stage Space-Time Video Super-Resolution
  15. Pinyin4J使用方法
  16. Ceph-deploy 搭建Ceph分布式存储系统
  17. 2022浙江省计算机三级网络及安全技术考试自学资料(3)(更新于3.9)
  18. 【论文阅读】An LSTM-Based Deep Learning Approach for Classifying Malicious Traffic at the Packet Level
  19. C51接入OneNET-实现数据上传和命令下发
  20. win10快捷键(常用快捷键)

热门文章

  1. ASCII码表【美国信息交换标准代码】
  2. CRUISE纯电动车仿真模型,simulink DLL联合仿真,实现电制动优先能量回收策略
  3. 在Mac下使用Python3
  4. 根据经纬度,距离范围,取随机经纬度
  5. 火车头采集规则,火车头采集数据发布不小心设置了发布数量怎么修改?
  6. Tcl经典报错 之 extra characters after close-quote
  7. ue编辑器(UltraEdit编辑器)将制表符(Tab键)替换成其竖线分隔符(其他分隔符)乱码
  8. 无法启动Outlook,无法打开Outlook…
  9. 假如时光倒流,我会这么学习Java 1
  10. linux(ubuntu/kali/centos)(选用gitee源来安装zsh(oh my zhs)