C++从0开始基础复习

学习目标:

9/07 9/08复习C++基础

学习内容:

C++基础
1、-变量 常量 关键字 标识符
2、-数据类型
3、-运算符
4、-程序流程结构
5、-数组
6、-函数
7、-指针
8、-结构体
9、-基础案例 通讯录管理系统

学习时间:

2020 9/7,9/8,9/9.

学习产出:

技术笔记&CSDN 博客 1 篇

START

文章目录

1、变量 常量 关键字 标识符

变量 :方便内存管理
常量 : 不可修改的变量
#define修饰 宏常量
const修饰

#include<iostream>
using namespace std;

//宏常量#define以及const修饰的变量(修饰后变量不可被修改)
#define days01 7
int main(){
   
	//days = 8;(错误,宏常量不可被修改)
	int days02 = 8;
	cout<<"days02="<<days02<<endl;
	const int days03 = 9;
	cout<<"days02="<<days02<<endl;
	//days03 = 19;(错误,const修饰不可被修改)
	system("pause");
	return 0;
}

关键字 &标识符 :c++预先保留的单词
字母、数字以及下划线组成
不能以数字开头
标识符不能是关键字
区分大小写
————————————————————

2、数据类型

c++中创建变量常量时必须声明其数据类型,否则无法分配内存
数据类型意义:给变量分配合理的内存空间

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

sizeof关键字 :统计数据类型占用内存大小

//size of用法
//short	< int <= long <= long long
cout<<"short占用的内存空间为:"<<sizeof(short);
#include<iostream>
using namespace std;
int main(){
	short a = 1;//-2^15   -2^15-1
	int b = 2;//-2^31   -2^31-1
	long c = 3;//-2^31   -2^31-1
	long long d = 4;//-2^32   -2^32-1
	cout<<"short占用内存空间为"<<sizeof(short)<<endl;//2
	cout<<"int占用内存空间为"<<sizeof(int)<<endl;//4
	cout<<"long占用内存空间为"<<sizeof(long)<<endl;//4
	cout<<"long long占用内存空间为"<<sizeof(long long)<<endl;//8
	
	//输出时自动精确到小数点后5位
	float e = 5.55555555555f;//有效七位
	cout<< e <<"float占用内存空间为"<<sizeof(float)<<endl;//4
	double f = 6.66666666;//有效15~16位
	cout<< f <<"float占用内存空间为"<<sizeof(double)<<endl;//8
	system("pause");
	return 0;
}

字符变量 :并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元

char ch = 'a';
//占用1字节
cout<<"ch占用的内存空间为:"<<sizeof(ch);
//a--97,A--65
cout<<"其对应的ASCII数值为"<<(int)ch<<endl;

转义字符

转义字符 含义 ASCII码值
\a 警报 007
\b 退格 008
\n 换行 010
\r 回车 010
\t 制表符 009
\ 反斜线 092

\t 水平制表符 所占的位置为8-已用位置

cout<<"aa\thello"<<endl;
cout<<"aaaa\thello"<<endl;
cout<<"aaaaaa\thello"<<endl;

字符串型:用来表示一串字符
注意:使用string时需要添加头文件
#include< string>

//C语言风格
char str[] = "helloworld";
cout<<str<<endl;
//C++风格
string str2 = "helloworld";
#include<iostream>
#include<string>
using namespace std;
int main(){
   
	char ch1 = 'a';
	char ch2 = 'A';
	char ch3 = '0';
	char ch4 = '5488';
	//char ch5 = "1"; 必须为单引号
	//char ch6 = 'hdhsjcn';创建字符型变量,单引号内必须只有一个字符
	char ch5[] = "abcfefg";//C语言的写法
	string ch6 = "abcdefg";//C艹的新写法,需要引用<string>头文件
	cout<<"字符型占用"<<sizeof(char)<<"字节"<<endl;
	cout<<"字符型占用"<<sizeof(char)<<"字节"<<endl;
	cout<<ch4<<endl;//8,只显示最后一位
	cout<<ch5<<endl;//abcdefg
	cout<<ch6<<endl;//abcdefg

	//ASCII表中
	cout<<"a对应的ASCII码为"<<int(ch1)<<endl;//97
	cout<<"A对应的ASCII码为"<<int(ch2)<<endl;//65
	cout<<"0对应的ASCII码为"<<int(ch3)<<endl;//48
	cout<<"NULL对应的ASCII码为"<<int(NULL)<<endl;//0

	//转义字符 \a警报	\n换行	\t制表符		\\ 表示\。
	//错误号的第二笔,叫反斜杠
	cout<<"\a"<<endl;
	cout<<"wahaha\n";
	cout<<"aa\tbbb"<<endl;
	cout<<"aaa\tbbb"<<endl;
	cout<<"aaaaaaaa\tbbb"<<endl;//8个+制表符,后面跟8个
	cout<<"aaaaaaaaa\tbbb"<<endl;//9个+制表符,后面跟7个

	system("pause");
	return 0;
}

数据的输入与输出

cin>>
cout<<
	cout<<flag<<endl;//1 (真)

	flag = false;
	cout<<flag<<endl;//0 (假)
	cout<<"布尔类型所占内存空间为:"<<sizeof(bool)<<"字节"<<endl;//1

	int a = 0;
	cout<<"请输入整型变量:"<<a<<endl;
	cin>>a;
	cout<<"a = "<<a<<endl;
	
	float b = 0.0f;
	cout<<"请输入浮点型变量:"<<b<<endl;
	cin>>b;
	cout<<"b = "<<b<<endl;
	
	char c = ' ';
	cout<<"请输入字符型变量:"<<c<<endl;
	cin>>c;
	cout<<"c = "<<c<<endl;
	
	string d = "";
	cout<<"请输入字符串型变量:"<<d<<endl;
	cin>>d;
	cout<<"d = "<<d<<endl;
	
	bool flag = true;
	cout<<"请输入布尔型变量:"<<flag<<endl;
	cin>>flag;
	cout<<"flag = "<<flag<<endl;//只要不是0,都代表1(真)
	
	system("pause");
	return 0;
}

3、运算符
运算符类型 作用
算数运算符 用于进行四则运算
赋值运算符 将表达式值赋值给变量
比较运算符 用于表达式的比较,返回一个真值或假值
逻辑运算符 根据表达式的值返回真值或假值
3.1算数运算符
算数运算符 术语 示例 结果
+ 正号
- 负号
+
-
*
/ 10/5 2
% 取模(取余) 10%3 1
++x 前置递增 a=2,b=++a a=3,b=3
- -x 前置递减 a=2,b=- -a a=1,b=1
x++ 后置递增 a=2,b=a++ a=3,b=2
x- - 后置递减 a=2,b=a- - a=1,b=2

注意点1、两个整数相处,结果依然是整数,去除掉小数部分

int a = 10,b = 20;
//输出为0
cout<<a/b<<endl;
//输出为2
double a1 = 0.5,b1 = 0.25;
cout<<a/b<<endl;
//输出为2.27273
double a1 = 0.5,b1 = 0.22;
cout<<a/b<<endl;

注意点2、c++中不允许两个小数作取模运算

3.2赋值运算符

赋值运算符(内容略。。。easy)

赋值运算符 术语 示例 结果
=
+=
-+
*=
/=
%=
3.3比较运算符

比较运算符(内容略。。。easy)
注意一点,比较运算符返回的是一个真值或假值就行

比较运算符 术语 示例 结果
=
!=
>
<
>=
<=
3.4逻辑运算符

逻辑运算符(这个需要牢记,黄阿牛本人老忘)

逻辑运算符 术语 示例 结果
&& a,b都为真 则结果为真
II a,b有一真,则结果为真

——————————————————

4、程序流程结构

最基本的三种程序运行结构:顺序,选择,循环

三只小猪比体重案例
#include<iostream>
using namespace std;

int main(){
   
	int pig01 = 0;
	int pig02 = 0;
	int pig03 = 0;

	cout<<"请输入第1只小猪的体重"<<endl;
	cin>>pig01;
	cout<<"请输入第2只小猪的体重"<<endl;
	cin>>pig02;
	cout<<"请输入第3只小猪的体重"<<endl;
	cin>>pig03;

	cout<<(pig01>pig02?(pig01>pig03?pig01:pig03):(pig02>pig03?pig02:pig03))<<endl;
	(pig01>pig02?pig01:pig02) = 100;//C艹中,三目运算符返回的是变量,可以再进行赋值
	cout<<pig01<<endl;
	system("pause");
	return 0;
}

注意:C艹中,三目运算符返回的是变量,可以再进行赋值

switch语句
#include<iostream>
using namespace std;

int main(){
   
	int score = 0;
	cout<<"请输入电影评分 10/7/4"<<endl;
	cin>>score;

	//switch结构清晰,执行效率高,缺点是不可以判断区间
	switch(score){
    //switch语句中的这个类型必须是整型或者字符型
	case 10:
		cout<<"高分"<<endl;
		break;
	case 7:
		cout<<"中分"<<endl;
		break;
	case 4:
		cout<<"低分"<<endl;
		break;
	default:
		cout<<"未输入合法输入"<<endl;
	}
	system("pause");
	return 0;
}
switchif  
一般switch执行效率会高于if,思路更清晰,结构有序
缺点是判断只能对 整型 或者 字符型,不可以是区间

循环结构之猜数字案例
#include<iostream>
using namespace std;
#include<ctime>

int main(){
   
	srand((unsigned int)time(NULL));//添加随机数种子,利用当前时间生成随机数,防止每次随机数都一样
	int num01 = (rand()%100 + 1);//系统随机生成1-100的数字(伪随机数)
	int num02 = 0;//初始化num02
	int times = 0;
	cout<<"请输入猜测的数字\n"<<"您有8次机会"<<endl;
	cin>>num02;//用户对num02赋值

	//开始进行判断
	while(times<8){
   
	if(num02>num01){
   
		cout<<"猜大了"<<endl;
		cin>>num02;
		times++;
	}
	else if(num02 < num01){
   
		cout<<"猜小了"<<endl;
		cin>>num02;
		times++;
	}
	else{
   
		cout<<"猜对了"<<endl;
		break;
	}
	}
	if(times<9){
   
		cout<<"win"<<endl;
	}else{
   
		cout<<"lose"<<endl;
	}
	
	system("pause");
	return 0;
}

注意:只用rand()%100,生成的是伪随机数(每次都一样)
可添加随机数种子,利用系统当前时间生成随机数。

#include<ctime>
srand((unsigned int)time(NULL));
循环结构之水仙花数案例
//水仙花数是指一个三位数,每个位上的三次幂之和等于该数
//求所有三位数中的水仙花数
#include<iostream>
using namespace std;

int main(){
   
	int GeW = 0,ShiW = 0,BaiW = 0;
	for(int i=100;i<1000;i++){
   
		GeW = i % 10;
		ShiW = i / 10 % 10;
		BaiW = i / 10 / 10;
		if(i == (GeW*GeW*GeW)+(ShiW*ShiW*ShiW)+(BaiW*BaiW*BaiW)){
   
			cout<<i<<endl;
		}
	}
	system("pause");
	return 0;
}

循环结构之敲桌子案例

#include<iostream>
using namespace std;
//1-100的数字,是7的倍数,或者个位数是7,再或者十位数是7,打印敲桌子

int main(){
   
	int a=0,b=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值