1.0 编写第一个C++程序
1.打开Visual Studio点击"创建新项目"
2.点击"空项目",并点击"下一步"
3.设置"项目名称"并"设置地址"
4.打开项目后,右击"源文件"并选择"添加"的"新建项"
5.点击"C++文件",设置文件名称并点击"添加"
6.在"hello_word"文件下编写代码并点击运行
7.运行结果如下:
1.1 注释
作用:在代码中加一些说明和解释,方便自己和其他程序员阅读代码
两种格式:
1.单行注释: // 描述信息
通常放在一行代码的上方或者一条语句的末尾,对该行代码说明
2.多行注释: /*描述信息*/
通常放在一段代码的上方对该段代码做整体说明
提示:编译器在编译代码时会忽略注释的内容
1.编写代码并添加注释信息
2.由于注释不参加编译,运行效果和1.1一样
3.代码如下:
#include<iostream>
using namespace std;
/*
main是一个程序的入口,
每个程序都必须有这么一个函数且有且仅有一个!!!
可以对源文件下不同文件的main函数取不同名称来避免系统出错
*/
int main()
{
//这行代码的含义是在屏幕输出:"Hello C++"
cout << "HELLO C++ !!!" << endl;
system("pause");
return 0;
}
1.2 变量和常量
1.2.1 变量
给一段指定的内存空间起名,方便操作/管理这段内存
语法: 数据类型 变量名 = 初始值;
代码及效果如下:
#include<iostream>
using namespace std;
int main()
{
//变量创建的语法
int a = 10;
cout << "变量a的值为:" << a << endl;
system("pause");
return 0;
}
1.2.2 常量
用于记录程序中不可更改的数据
C++定义常量两种方式:
1.#define宏常量,通常在函数体上方定义表示一个常量
#define 常量名 常量值
2.const修饰的变量,通常在变量定义前加关键字const
const 数据类型 变量名 = 变量值;
代码及效果如下:
#include<iostream>
using namespace std;
//1.#define定义宏常量
#define DAY 7
int main()
{
//2.const修饰变量
const int a = 10;
cout << "一周有" << DAY << "天" << endl;
cout << "常量a的值为:" << a << endl;
system("pause");
return 0;
}
1.3 关键字和标识符
1.3.1 关键字
C++关键字_百度百科
关键字/标识符是C++中预先保留的单词
在定义变量或者常量时不可以使用关键字
1.3.2 标识符
C++在使用标识符(变量、常量)命名时有一套自己的规则:
1.标识符不能是关键字
2.标识符只能由字母、数字、下划线组成
3.第一个字符必须为字母或下划线
4.标识符中字母区分大小写
建议:给标识符起名时最好能够见名知意
1.4 数据类型
C++规定创建变量/常量时,必须指出相应的数据类型否则无法给变量分配合适的内存空间
1.4.1 整数型
数据类型 | 占用空间 |
short(短整型) | 2字节 |
int(整型) | 4字节 |
long(长整型) | Windows为4字节 |
long long(长长整型) | 8字节 |
结论:short < int <=long <=long long
1.4.2 sizeof关键字
可以利用sizeof关键字统计各数据类型占用内存大小
语法:sizeof(数据类型/变量)
代码及效果如下:
#include<iostream>
using namespace std;
int main()
{
cout << "短整数型short所占空间大小为:" << sizeof(short) << endl;
cout << "整数型int所占空间大小为:" << sizeof(int) << endl;
cout << "长整数型long所占空间大小为:" << sizeof(long) << endl;
cout << "长长整数型long lomg所占空间大小为:" << sizeof(long long) << endl;
system("pause");
return 0;
}
1.4.3 实型(浮点型)
用于表示小数
浮点型变量分为两类:
1.单精度:float
float 变量名 = 变量值f;
2.双精度:double
double 变量名 = 变量值;
C++系统默认小数为double型,在float变量值后加f表示这是一个float型实数
两者的区别在于表示的有效数字范围不同
数据类型 | 占用空间 | 有效数字范围 |
float | 4字节 | 7位有效数字 |
double | 8字节 | 15-16位有效数字 |
代码及效果如下:
#include<iostream>
using namespace std;
int main()
{
//单精度
float f1 = 3.14f;
//双精度
double d1 = 0.0015926;
cout << "f1=" << f1 << endl;
cout << "d1=" << d1 << endl;
system("pause");
return 0;
}
1.4.4 字符型
ASCII码对照表-BeJSON.com
字符型变量用于显示单个字符
语法:char 变量名 = '变量值' ;
注意1:在显示字符型变量时,用单引号将字符括起来,不能用双引号!
注意2:单引号内只能有一个字符,不可以是字符串
C和C++中,字符型变量只占用1个字节
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII码放入到存储单元
代码及效果如下:
#include<iostream>
using namespace std;
int main()
{
char c1 = 'a' ;
cout << "字符型c1的值为:" << c1 << endl;
cout << "字符型数值所占内存空间大小为:" << sizeof(char) << endl;
cout << "字符型变量对应的ASCII值:" << (int)c1 << endl;
system("pause");
return 0;
}
1.4.5 转义字符
转义字符_百度百科
用来表示一些不能显示出来的ASCII字符
现阶段我们常用的转义字符有:\n \\ \t
转义字符 | 含义 |
\n | 换行 |
\t | 水平制表 |
\\ | 代表一个反斜线字符"\" 作用:可以整齐的输出数据 |
代码及效果如下:
#include<iostream>
using namespace std;
int main()
{
//换行符:\n
cout << "hello word\n";
//制表符:\t
cout << "aaaa\thello-word" << endl;
cout << "aa\thello-word" << endl;
cout << "aaaaaa\thello-word" << endl;
//反斜杠:
cout << "我要输出一个反斜线:\\" << endl;
system("pause");
return 0;
}
1.4.6 字符串类型
用于表示一串字符
两种风格--
C语言风格字符串:char 变量名 [] = "字符串值";
C++语言风格字符串:string 变量名 = "字符串值";
注意:
在使用C++语言风格字符串变量时一定要加上头文件:#include<string>
代码及实现效果如下:
#include<iostream>
using namespace std;
#include<string>
int main()
{
//C语言风格关键字
char c1[] = "hello word!";
//C++语言风格关键字
string s1 = "welcome to C++";
cout << "C语言风格关键字c1:\t" << c1 << endl;
cout << "C++语言风格关键字s1:\t" << s1 << endl;
system("pause");
return 0;
}
1.4.7 布尔类型
布尔数据类型代表真或假的值;bool类型占一个字节大小
bool类型只有两个值:
true---真(本质是1)
false--假(本质是0)
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
//1.创建bool数据类型
bool flag = true;
cout << flag << endl;
flag = false;
cout << flag << endl;
//2.查看bool类型占用空间大小
cout << "bool数据类型占用空间大小为:"<<sizeof(bool) << "字节" << endl;
system("pause");
return 0;
}
1.4.8 数据的输入
作用:用于从键盘获取数据
关键字:cin
语法:cin >> 变量
代码及实现效果如下:
#include<iostream>
using namespace std;
#include<string>
int main()
{
//bool数据类型
bool flag = true;
cout<<"当前bool类型的值为:"<<flag<<endl;
cout<<"请输入bool类型的值:"<<endl;
cin>>flag;
cout<<"修改后bool型数据的值为:"<<flag<<endl;
system("pause");
return 0;
}
1.5 运算符与表达式
用于执行代码的运算
1.5.1 算术运算符和算术表达式
1.5.1.1 基本的算术运算符和算术表达式
+ | 加法运算符/正值运算符 |
- | 减法运算符/负值运算符 |
* | 乘法运算符 |
/ | 除法运算符 |
% | 取余运算符/模运算符(本质就是求余数) |
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
//加减乘除 取余
int num1 = 3;
int num2 = 10;
int add = num1 + num2;
int subtract = num2 - num1;
int multiply = num1 * num2;
double divide = num2 / num1; //在C和C++中两个整数相除结果还是整数
int remainder = num2 % num1;
cout <<"num1与num2相加结果为:\t"<< add <<endl;
cout <<"num1与num2相减结果为:\t"<< subtract <<endl;
cout <<"num1与num2相乘结果为:\t"<< multiply <<endl;
cout <<"num1与num2相除结果为:\t"<< divide <<endl;
cout <<"num1与num2取余结果为:\t"<< remainder<<endl;
system("pause");
return 0;
}
1.5.1.2 强制类型转换运算符
利用强制类型转换运算符将一个表达式转换成所需类型
语法:(类型名)(表达式) eg:
(double)a (int)(x+y) (float)(5%3)
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
float f1 =314.159f;
int num;
num = (int)f1;
cout<<"num=\t"<<num<<endl;
cout<<"num/2=\t"<<(num/2)<<endl;
system("pause");
return 0;
}
1.5.1.3 自增、自减运算符
作用是使变量的值增1或减1
粗略地看,++i和i++的作用相当于i=i+1。但++i与i++不同之处在于++i是先执行i=i+1后,
再使用i的值;而i++是先使用i的值后再执行i=i+1
运算符 | 示例 | 结果 |
前置递增 ++i | i=2 ; j=++i | i=3 ; j=3 |
后置递增 i++ | i=2 ; j=i++ | i=3 ; j=2 |
前置递减 --i | i=2 ; j =--i | i=1 ; j=1 |
后置递减 i-- | i=2 ; j = i-- | i=1 ; j=2 |
1.5.2 赋值运算符和赋值表达式
赋值符号"="称为:赋值运算符,它的作用是将一个数据赋给一个变量。
如"a=3"的作用是执行一次赋值操作/赋值运算:把常量3赋给变量a;
也可以将一个表达式的值赋给一个变量。
运算符 | 术语 | 示例 & 结果 |
= | 赋值 | a=5;b=3 |
+= | 加等于 | a+=b;a=8 |
-= | 减等于 | a-=b;a=2 |
*= | 乘等于 | a*=b;a=15 |
/= | 除等于 | a/=b;a=1 |
%= | 取余等于 | a%=b;a=2 |
1.5.3 比较运算符
用于表达式的比较,并返回一个真值或假值
运算符 | 术语 | 示例 | 结果 |
== | 等于 | 4==3 | 0 |
!= | 不等于 | 4!=3 | 1 |
< | 小于 | 4<3 | 0 |
> | 大于 | 4>3 | 1 |
<= | 小等于 | 4<=3 | 0 |
>= | 大等于 | 4>=3 | 1 |
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
int a = 10;
int b = 20;
cout << (a==b) <<endl;
cout << (a!=b) <<endl;
system("pause");
return 0;
}
1.5.4 逻辑运算符
作用:用于根据表达式的值返回真值或假值
运算符 | 术语 | 示例 | 结果 |
&& | 逻辑与 | a&&b | 同真为真,其余为假 |
|| | 逻辑或 | a||b | 一真为真,全假为假 |
! | 逻辑非 | !a | a为假则!a为真;a为真则!a为假 |
1.5.4.1 逻辑与运算符
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
int a =10;
int b =20;
cout <<(a&&b)<<endl;
system("pause");
return 0;
}
1.5.4.2 逻辑或运算符
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
int a =10,b =20;
cout<<(a||b)<<endl;
a = 0; b = 0;
cout<<(a||b)<<endl;
system("pause");
return 0;
}
1.5.4.3 逻辑非运算符
代码及实现效果如下:
#include<iostream>
using namespace std;
int main()
{
int a = 0;
cout<<(!a)<<endl;
cout<<(!!a)<<endl;
system("pause");
return 0;
}