目录
1.1.2创建第一个C++程序:"Holle,World!"
1.C++初识
1.1.1C++基本框架:
#include <bits/stdc++.h> // 万能头文件
using namespace std; // 使用 std 命名空间
int main()
{ // 程序主函数
// ... // 自己的程序代码
return 0;
}
1.1.2创建第一个C++程序:"Holle,World!"
#include <bits/stdc++.h>
using namespace std;
int main()
{
cout << "Holle,World!" << endl
return 0;
}
运行结果:Holle,World!
1.2.1变量
变量存在的意义:方便我们管理内存
变量创建的语法:数据类型 变量名=变量初始值
例: int a=10
#include <bits/stdc++.h>
using namespace std;
int main()
{
//变量创建的语法:数据类型 变量名=变量初始值
int a = 10;
cout << "a=" << a << endl;
return 0;
}
运行结果:a=10
1.3.1常量
作用:用于记录程序中不可更改的数据
C++定义常量两种方式
1.#define宏常量:#define 常量名 常量值
通常在文件上放定义,表示一个常量
2.const修饰的变量:const 数据类型 常量名 = 常量值
通常在变量定义前加关键字const,修饰该变量为常量,不可修改
#include <bits/stdc++.h>
using namespace std;
//常量定义方式
//1、#define 宏常量
//2、const修饰的变量
//1.#define 宏常量
#define Day 7
int main()
{
//Day = 14;//错误,Day是常量,一旦修改就会报错
cout<< "一周总共有" << Day << "天" <<endl;
//2、const修饰的变量
const int month = 12;
//month = 24;//错误,const修饰的变量也称为常量
cout<< "一年总共有:" << month << "个月份" <<endl;
return 0;
}
输出结果:一周总共有7天
一年总共有12个月
1.4.1关键字
作用:关键字是C++中预先保留的单词(标识符)
**在定义变量或者常量时候,不要用关键字
C++关键字如下:
1.5.1标识符命名规则
作用:C++规定给标识符(变量、常量)命名时,有一套自己的规则
(1)标识符不能是关键字
(2)标识符只能由字母、数字、下划线组成
(3)第一个字符必须为字母或下划线
(4)标识符中字母区分大小写
建议:给标识符命名时,争取做到见名知意的效果,方便自己和他人的阅读
#include<iostream>
using namespace std;
//标识符命名规则
//(1)标识符不能是关键字
//(2)标识符只能由字母、数字、下划线组成
//(3)第一个字符必须为字母或下划线
//(4)标识符中字母区分大小写
int main()
{
//(1)标识符不能是关键字
//int int = 10;
//(2)标识符只能由字母、数字、下划线组成
int abc = 10;
int _abc = 10;
int _123abc = 10;
//(3)第一个字符必须为字母或下划线
//int 123abc = 40;
//(4)标识符中字母区分大小写
int aaa = 100;
//cout << aaa << endl;
//cout << AAA << endl;AAA和aaa不是同一个名称(错误)
//建议:给变量起名时,最好能够见字知意
int num1 = 10;
int num2 = 20;
int sum = num1 + num2;
cout << sum <<endl
return 0;
}
2.数据类型
数据类型存在的意义:给变量分配合适的内存空间
2.1.1整型
作用:整形变量表示的是整型类型的数据
C++中能够表示整形的类型有以下几种方式,区别在于所占内存空间不同
#include <bits/stdc++.h>
using namespace std;
int main()
{
//整形
//1.短整型(-32768~32767)
short num1 = 32768;//超过上限,输出变成了-32768
//2.整形
int num2 = 10;
//3.长整型
long num3 = 10;
//4.长长整形
long iong num4 = 10;
cout << "num1=" << num1 << endl;
cout << "num2=" << num1 << endl;
cout << "num3=" << num1 << endl;
cout << "num4=" << num1 << endl;
return 0;
}
2.2.1sizeof关键字
作用:利用sizeof关键字可以统计数据类型所占内存的大小
语法:sizeof(数据类型/变量)
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//整型: short (2) int (4) long (4) long long (8)
//可以利用sizeof求出数据类型占用内存的大小
//语法: sizeof(数据类型/变量)
short num1 = 10;
cout << "short占用内存空间为: " << sizeof(short) << endl;//short可以用num1替换
int num2 = 10;
cout << "int占用内存空间为: " << sizeof(inr) << endl;
long num3 = 10;
cout << "long占用内存空间为: " << sizeof(long) << endl;
long long num4 = 10;
cout << "long long 占用内存空间为: " << sizeof(long long) << endl;
//整型大小比较
//short < int <= long <long long
return 0;
}
输出结果:
short占用内存空间为:2
int占用内存空间为:4
long占用内存空间为:4
long long 占用内存空间为:8
2.3.1实型
作用:用于表示小数
浮点型变量分为两种:
1、单精度float
2、双精度double
两者的区别在于表示的有效数字范围不同。
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//单精度float
//双精度double
//默认情况下 输出一个小数,会显示出6位有效数字
float f1 = 3.14f;
cout << "f1 = " << f1 << endl;
double d1 = 3.14;
cout << "d1 = " << d1 << endl;
//科学计数法
float f2 = 3e1; //3*10^2;
cout << "f2= " << f2 << endl;//输出结果:300
float f3 = 3e-1; //3*0.1^2;
cout << "f3= " << f3 << endl;//输出结果:0.03
return 0;
}
2.4.1 字符型
作用:字符型变量用于显示单个字符
语法:char ch= 'a';
注意一:在显示字符型变量时,用单引号将字符括起来,不用双引号
注意二:单引号内只能有一个字符,不能是字符串
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//1、字符型变量创建方式
char ch = 'a';
cout << ch << endl;
//2、字符型变量所占内存大小
cout << "char所占内存空间:" << sizeof(char) <<endl;
//3、字符型变量常见错误
//char ch2 = "b";//不能用""创建
//char ch2 = 'abc';//单引号内只能有一个字符
//4、字符型变量对应ASCII编码
//a-97 A-65
cout << (int)ch <<endl;//a对应的ASCII编码值:97
return 0;
}
*C和C++中字符型变量只占用1个字节
*字符型变量并不能把字符本身放到内存中存储,而是将对应的ASC||编码放入到存储单元
2.5.1转义字符
作用:用于表示一些能显示出来的ASC||字符
现阶段常用的字符有:\n \\ \t
2.6.1字符串类型
作用:用于表示一串字符
两种风格
C语言字符串:char 变量名[] = "字符串值"
注意:C风格的字符串要用引号括起来
C++风格字符串:string 变量名 = "字符串值"
将字符串值赋到变量名中
注意C++风格字符串,需要加入头文件#include<strring>
2.7.1布尔类型bool
作用:布尔数据类型代表真或假的值
bool类型只有两个值:
true --- 真(本质是1)
false --- 假(本质是0)
boo类型占1个字节大小
#include <bits/stdc++>h>
using namespace std;
int main ()
{
bool flag = true;//true代表真
cout << flag <<endl;//输出结果为:1
flag = false; //false代表假
cout << flag <<endl;//输出结果为:0
//本质上 1代表真 0代表假
return 0;
}
2.8.1数据输入
作用:用于从键盘获取数据
关键字:cin
语法:cin>>变量
#include <bits/stdc++.h>
using namespace std;
int main () {
//以整型为例,其他同理
int a = 0;
cout << "请给整型变量a赋值:" <<endl;
cin >> a;
cout << "a=" << a << endl;
return 0;
}
3.运算符
作用:用于执行代码的运算
主要有以下几种运算符:
3.1.1算数运算符
作用:用于处理四则运算
算数运算符包括以下符号:
加减乘除:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
int a1 = 10;
int b1 = 3;
cout << a1+b1 << endl;//13
cout << a1-b1 << endl;//7
cout <<a1*b1 << endl;//30
cout <<a1/b1 <<end1;//3(两个整数相除结果依然是整数,将小数部分去除)
int a2 = 10;
int b2 = 0;
//cout << a2/b2 <<endl;//错误除数不能为0
//两个小数可以相除
double d1 = 0.5;
double d2 = 0,22;
cout << d1/d2 <<endl;//运算的结果也可以是小数
return 0;
}
取模(取余):
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//取模运算的实质 就是求余数
//表达式必须具有整数
int a1 = 10;
int b1 = 3;
cout << a1%b1 <<endl;//1
int a2 = 10;
int b2 = 20;
cout << a2%b2 <<endl;//10
int a3 = 10;
int b3 = 0;
//cout << a3%b3 <<endl;//错误!取模基于除法 除数不能为零
//两个小数不能进行取模运算!!!
return 0;
}
前/后置递增/减:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//前置递增
int a = 10;
++a;
cout << "a=" << a << endl;
//后置递增
int b = 10;
b++;
cout << "b=" << b << endl;
//前置和后置的区别
//前置递增 先让变量+1 然后进行表达式运算
int a2 = 10;
int b2 = ++a2 * 10;
cout << "a2=" << a2 << endl;//a2=10+1=11
cout << "b2=" << b2 << endl;//b2=11*10=110
//后置递增 先进行表达式的运算 然后让变量+1
int a3 =10;
int b3 =a3++*10;
cout << "a3=" << a3 << endl;//a3=10+1=11
cout << "b3=" << b3 << endl;//b3=10*10=100
//递减同理
return 0;
}
3.2.1赋值运算符
作用:用于将表达是的值赋给变量
赋值运算符包括以下几个符号:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//赋值运算符
// =
int a = 10;
a=100;//将a从10赋值为100
cout << "a=" << a << endl;//a=100
// +=
a=10;//从100重新赋值为10
a+=2;//(简化写法) 等价于a=a+2;
cout << "a=" << a << endl;//a=10+2=12
// -=
a=10;
a-=2;//等价于a=a-2;
cout << "a=" << a << endl;//a=10-2=8
// *=
a=10;
a*=2;// a=a*2
cout << "a=" << a << endl;//a=10*2=20
// /=
a=10;
a/=2;// a=a/2;
cout << "a=" << a << endl;//a=10/2=5
// %=
a=10;
a%=2;// a=a%2
cout << "a=" << a << endl;//a=10%2=0
return 0;
}
3.3.1 比较运算符
作用:用于表达式的比较,并返回一个真值或假值
比较运算符有以下符号:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//比较运算符
// ==
int a =10;
int b =20;
cout << (a==b) << endl;// 0
// !=
cout << (a!=b) << endl;// 1
// >
cout << (a>b) << endl;// 0
// <
cout << (a<b) << endl;// 1
// >=
cout << (a>=b) << endl;// 0
// <=
cout << (a<=b) << endl;// 1
// 0表示假 1表示真
return 0;
}
3.4.逻辑运算符
作用:用于根据表达式的值返回真值或假值
逻辑运算符有以下符号:
非:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//逻辑运算符 非 !
int a = 10;
//在c++中除了0都为真
cout << !a << endl;// 0
cout << !!a << endl;// 1
return 0;
}
与:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//逻辑运算符 与 &&
int a = 10;
int b = 10;
cout << (a && b) << endl;// 1
a = 0;
b = 10;
cout << (a && b) << endl;// 0
a = 0;
b = 0;
cout << (a && b) << endl;// 0
//两个都为真才是真 只要有一个假就是假
return 0;
}
或:
#include <bits/stdc++.h>
using namespace std;
int main ()
{
//逻辑运算符 或 ||
int a = 10;
int b = 10;
cout << (a||b) << endl; // 1
a = 0;
b = 10;
cout << (a||b) << endl; //1
a = 10;
b = 0;
cout << (a||b) << endl; //1
a = 0;
b = 0;
cout << (a||b) << endl; //0
只要有一个为真则全为真
return 0;
}