IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++笔记,从第一个程序到数组 10.10 -> 正文阅读

[C++知识库]C++笔记,从第一个程序到数组 10.10

/*#include<iostream>
using namespace std;

int main()
{
	cout << "hello world" << endl;//cont的解析:https://blog.csdn.net/weixin_41785349/article/details/112555190*/
	//变量:
	//变量创建的语法:书库类型 变量名 = 变量初始值
	//eg: int(整形变量) a = 10;

	/*输出上面a这个变量: cout<<"a ="<< a << endl;*/


	//常量:
	//用于记录程序中不可更改的数据
	//两种定义常量的方法:
    //1、#define 常量名(宏常量) 常量值 
	//define Day 7
	//define Day 14(会报错,不可以修改,即不能加这句)
	//cout << "一周总共有:" << Day <<  "天" << endl;(输出这个常量)

	//2、const修饰的变量
	//const int month = 12;
	//month = 24;(会报错,不可以修改,即不能加这句,const修饰的变量也称作为常量)
	//cout << "一年总共有:" << month <<"个月份"<< endl;



	

/*	system("pause");//(表示暂停)
	  
	return 0;//中间的空格不能省略                                                                                                                                                                   u加空格

}*/



//注释:
//单行注释
/*多行注释
用来解释代码含义,或者一些笔记。 星号之间就是多行注释包含的内容*/



//关键字(预先保留的单词,是标识符),eg:在定义变量或者常量的时候,不要用关键字,会产生歧义(是数据类型还是变量名称,产生了矛盾)
//https://www.runoob.com/w3cnote/cpp-keyword-intro.html, 具体含义



//标识符(变量、常量、函数、语句块等命名的泛统称)
//标识符命名规则:(eg:关键字与标识符的区别:关键字是系统自带的 ,标识符是自定义的。关键字是一种特殊意义的标识符,当一般把它当成关键字,如if只能是关键字)
//1、标识符只能由字母 数字 下划线组成
//2、第一个字符必须是字母或者是下划线,不能是数字如int 123就不行
//3、/标识符的字母是区分大小写的,如dk不等于DK




//数据类型(C++规定在创建一个变量或者常量时,必须要指定出相应的书库类型,否则无法给变量分配内存)
//eg:数据类型的存在意义:给变量“合适”的内存空间
//1、整型(即表示整数类型的数据):
//   short(短整型)       大小:2字节 取值范围:-2^15~2^15-1    如short num1 = 10;  (2^15=32768)
//   int(整型)            大小:4字节 取值范围:-2^31~2^31-1    如int num2 = 10;
//   long(长整型)         大小:win 4字节 linux 4(32位)8(64位) 取值范围:-2^31~2^31-1
//   long long(长长整型)  大小:8字节 取值范围:-2^63~2^63-1  如long long num4=10
//输出:cout << "num1=" << mum1 << endl;
//eg:整形大小比较:/short<int<= longg <= long long 

//2、实型(浮点型)
//   作用:用于表示小鼠
//  单精度float         占用空间:4字节   有效数字范围:7位有效数字(3.14,三位有效数字)   如float f1 = 3.14f(这里一般多写个f,因为默认系统是双精度,这里给它精准定位);
//   双精度double        占用空间:8字节   有效数字范围:15~16位有效数字                  如double d1=3.14(这里不用加东西)
//输出:cout<<"f1="<<f1<<endl;
//eg:科学计数法:float f2 = 3e2;(如果e的后面是正数,这时候表示3*10^2;如果是负数,就是表示3*0.1^2) 
//eg:默认情况下,输出一个小数,会显示出6位有效数字

//3、字符型(字母,用于现实单个字符)
//   语法:char 变量名称 = '单个字符',如'a';(这里记住是单引号,且一定是“单个字符”)
//   大小:C与C++中字符型变量大小为 1 字节
//字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCLL编码放入存储单元,即a这个字符不会被放入内存储存,还是a对应的某个编码比如1,通过二进制等编码放入储存单元
//eg: char ch = 'a';  (这里的是随便写的,可以不是ch)
//打印:cout << (int) ch << endl;(这里在变量名称如ch前加(int)可以查看对应字符的如a的ASCll的编码,小写a是97大写A是65

//4、转义字符:用于表示一些不能显示出来的ASCLL字符(https://blog.csdn.net/a3192048/category_7787322.html), 通常以\n开头
//   一些常用的字符:\n:将当前位置转移到下一行 \n:将当前位置转移到本行当前 \\代表一个反斜杠字符\a响铃\t水平制表如cout<<""aaa\t123456(这里三个a,就占五个位置,目的是为了看着整齐)

//5、字符串型:用于表示一串字符(一些字符组合在一起就是字符串)
//   语法:C风格字符串:char 变量名 [] = "字符串值"     (这里语法与字符的区别是多一个[],以及''变成了"")
//   语法:C++风格字符串:string 变量名 = "字符串值 "(eg:在用这个字符串之前要加一个头文件#include<string>,dev vs2019 xcode clion 不需要加)

//6、布尔数据类型 bool:在c++中代表真或假的一个值
//   bool类型(大小1字节)只有两个值:
//   true 真(本质是1) false 假(本质是0)
//   语法 bool 变量名 = true //除了0以外都是真

//7、数据的输入(输出是cout,对应的就是输出cin)
//列子:inta = 0 (这里用整型做例子,其他数据类型通用)
//     cout<<"请给整型变量a赋值;"<<endl;
//     cin>> a;
//     cout<<"整型变量a ="<<endl;


//sizeof关键字(https://blog.csdn.net/cherrydreamsover/article/details/81057899)
//定义:
//   sizeof是C/C++中的关键字,它是一个运算符,其作用是取得一个对象(数据类型或数据对象)的长度(即占用内存的大小,以byte为单位)
//   其中类型包括基本数据类型(不包括void)、用户自定义类型(结构体、类)、函数类型。数据对象是指用前面提到的类型定义的普通变量和指针变量(包含void指针)。
//   eg:sizeof是运算符不是函数,是唯一一个以单词形式出现的运算符
//作用:
//    利用sizeof关键字可以统计数据类型所占内存大小
//实例(语法):
//    sizeof(数据类型/变量)
//eg: short num1  = 10;
//    cout<<"short占用内存空间为: " <<sizeof(short) <<endl;eg:可以把数据类型short换成上面的变量num1



//运算符:用于执行代码的运算
//类型:
//    算术运算符(用于处理四则运算)
//    1、 算术运算符中的加减乘除运算符:+代表加或者表示正数,-代表减或者表示负数,*代表乘,/代表除(两个int整数相除,结果仍然是整数,会将小数去除,如下面换成除打印后是3)
//       eg:inta=10 int b=3 cout<<a+b<<endl;
//    2、 算术运算符中的取模(余)运算符:%  (本质就是取余数)
//       eg:inta=10 int b=3 cout<<a%b<<endl;
//    3、 算术运算符中的递增递减运算符:++代表递增,让变量+1;--代表递减,让变量-1
//        eg:前置递增(递减):++(--)写在变量前面,表示先给变量+1(-1),再进行表达式运算,比如 int a =10 int b = ++a*10 那么cout<<“b的值为”<<b<<endl; b就等于110
//        eg:后置递增(递减):++(--)写在变量后面,表示先进行表达式运算,再给变量+1(-1),比如 int a =10 int b = a++*10 那么cout<<“b的值为”<<b<<endl; b就等于100 (这里是,先让a赋值为10,再进行运算打印出b=100,最后进行后置赋值a=11)

//    赋值运算符,用于将表达式赋值给变量
//    1、 = int a = 10 a=100 cout<<"a的值为"<<a<<endl; 输出a为100
//    2、+=  a =10  a+=2(=表示赋值,这里整句含义是a=a+2,)  输出为12
//    =(赋值)   +=(加等于)  *=(乘等于)/=(除等于) %=(模等于) 类似上行

//    比较运算符,用于表达式的比较,并返回一个真值或假值
//    = =(相等于) 4= =3 结果 0    inta=4 b=3 cout<<(4= =3)<<endl; 
//    ! =(不等于) 4= =3 结果 1
//    <  (小于)   4= =3 结果 0
//    >  (大于)   4= =3 结果 1
//    <=(小于等于)  4= =3 结果 0
//    >=(大于等于)  4= =3 结果 1

//    逻辑运算符,用与根据表达式中的值返回真值或假值
//    1、非:! 实例:!a 含义:如果a为真,则a为假;如果a为假,则a为真
//    2、与:&& 实例:a&&b 含义:若果a和b都为真,则结果为真(1),否则为假(0)
//    3、或:||(键盘中的右斜杠)实例:a||b 含义:如果a和b有一个为真 则结果为真,二者都为假是,结果为假 cout<<(||a)<<endl; 这里和与一样要加括号,但是上面的非!不要加括号
//    eg: inta=10;(非0数都为真)
//        intb=10;
//        cout<<( a&&b )<<encdl;输出结果为 1(真)



//   程序流程结构(顺序结构,选择结构,循环结构)(https://www.bilibili.com/video/BV1et411b73Z?p=24)教学图

//   选择结构
//   1、单行if语句: if(条件){条件满足执行的语句}
//   列子:用户输入分数,如果分数大于600分,视为考上一本大学,在屏幕上输出
//   步骤:
//   (1):用户输入分数
//    int score = 0 (用一个变量去保存分数)
//    cout<<"请输入一个分数:"<<endl;(提示用户输入)
//    cin>> score; (从键盘获取分数)
//    
//   (2):打印用户输入的分数
//     cout<<"您输入的分数为"<<score<<endl;

//   (3):判断分数是否大于600,如果大于,那么输出
//   if(score > 600)(这里语句后面不能加分号;http://bbs.itheima.com/thread-208805-1-1.html)
//   {
//    cout<<"恭喜你考上了一本大学"<<endl;
//   }

//  2、多行格式if(条件){条件满足执行的语句}else{条件不满足执行的语句}
//    列子:用户输入分数,如果分数大于600分,视为考上一本大学,在屏幕上输出;如果没考上一本大学,则打印未考上一本大学
//    步骤:
//    (1):用户输入分数
//    int score = 0
//    cout<<"输入一个分数:"<<endl;
//    cin>> score;
//    
//    (2):提示用户输入的分数
//     cout<<"您输入的分数为"<<score<<endl
//
//    (3):判断: 如果大于600 则打印考上100 ,否则打印未考上100
//    if(score>600)
//    {
//    cout<<"恭喜你考上一本"<<endl; 
//
//	  }
//   (上面跟1单句if条件语句一样,下面是处理,如果没考上一本大学的语句)
//   else(不大于600分,执行else后大括号的内容)
//   {
//   cout<<"未考上一本大学"<<endl;
//
//    }

//  3、多条件语句if(条件1){条件1满足的语句}else if(条件2){条件2满足的语句}....else(都不满足执行的语句)
//  列子:输入一个考试分数,如果大于600分,则视为一本大学,在屏幕打印
//       大于500,则视为考上二本大学,屏幕输出
//       大于400。则视为考上三本大学,屏幕输出
//       小于等于400,则视为未考上本科,屏幕上输出
//    (1):用户输入分数
//    int score = 0
//    cout<<"请输入一个分数:"<<endl;
//    cin>> score;
//    
//    (2):提示用户输入的分数
//     cout<<"您输入的分数为"<<score<<endl
//   (3):判断
//    判断1:(如果大于600,考上一本)
//    if(score>600)
//    {    
//    cout<<"恭喜您考上一本"<<endl;
//    }
//    判断2:(如果大于500,考上二本)
//    else if(score>500)
// {
//  cout<<"恭喜您考上二本"<<endl;
// }
//
//   判断3:(如果大于400,则考上300)
//   else if (score>400)
//   {
//   cout<<"恭喜您考上三本"<<endl;
//   }
//   判断4:(前三个都不满足,则未考上)
//   else
// {
// cout<<"未考上本科,请再接再厉。"<<endl;
// }

//  4、嵌套语句
//   列子:在上述多条件语句if的前提下,分数大于700考入北大,大于650考入清华,大于600考入人大
//   在上面大于600的情况下,再在{}内做一个多条件语句(小于六百跟直接写上述一样就行)
//  if(score>600)
//  {
//  cout << "恭喜您考上一本" << endl;
//  if (score > 700)
//  {
//	cout << "恭喜您考入被打" << endl;
//  }
//  else if (score > 650)
//  {
//	cout << "恭喜您考入清华" << endl;
//
//  }
//  else(score > 600)
//  {
//	cout << "恭喜您考入人大" << endl;
//	}
//  }

// 5、三目运算符(如果表达式1的值为真,执行表达式2,并返回表达式2的结果;)
// int main() {
//
//int a = 10;
//int b = 20;
//int c = 0;
//
//c = a > b ? a : b;
//cout << "c = " << c << endl;
//
C++中三目运算符返回的是变量,可以继续赋值
//
//(a > b ? a : b) = 100;
//
//cout << "a = " << a << endl;
//cout << "b = " << b << endl;
//cout << "c = " << c << endl;
//
//system("pause");

//return 0;
//}

//6、switch语句(int main() {
// 表达式:switch

//{
//
//case 结果1:执行语句; break;
//
//	case 结果2:执行语句; break;
//
//		...
//
//	default:执行语句; break;
//
//}
//例子:
//int main() {
//
//	//请给电影评分 
//	//10 ~ 9   经典   
//	// 8 ~ 7   非常好
//	// 6 ~ 5   一般
//	// 5分以下 烂片
//
//	int score = 0;
//	cout << "请给电影打分" << endl;
//	cin >> score;
//
//	switch (score)
//	{
//	case 10:
//	case 9:
//		cout << "经典" << endl;
//		break;
//	case 8:
//		cout << "非常好" << endl;
//		break;
//	case 7:
//	case 6:
//		cout << "一般" << endl;
//		break;
//	default:
//		cout << "烂片" << endl;
//		break;
//	}
//
//	system("pause");
//
//	return 0;
//}

//4.2 循环结构while(循环条件) { 循环语句 }
//只要循环条件的结果为真,就执行循环语句
//int main() {
//
//	int num = 0;
//	while (num < 10)
//	{
//		cout << "num = " << num << endl;
//		num++;
//	}
//
//	system("pause");
//
//	return 0;
//}
//
//
//do…while循环语句
//**注意:**与while的区别在于do…while会先执行一次循环语句,再判断循环条件
//int main() {
//
//	int num = 0;
//
//	do
//	{
//		cout << num << endl;
//		num++;
//
//	} while (num < 10);
//
//
//	system("pause");
//
//	return 0;
//}
//
//
//for循环语句
//int main() {
//
//	for (int i = 0; i < 10; i++)
//	{
//		cout << i << endl;
//	}
//
//	system("pause");
//
//	return 0;
//}
//跳转语句
//1、break语句
//int main() {
//	//1、在switch 语句中使用break
//	cout << "请选择您挑战副本的难度:" << endl;
//	cout << "1、普通" << endl;
//	cout << "2、中等" << endl;
//	cout << "3、困难" << endl;
//
//	int num = 0;
//
//	cin >> num;
//
//	switch (num)
//	{
//	case 1:
//		cout << "您选择的是普通难度" << endl;
//		break;
//	case 2:
//		cout << "您选择的是中等难度" << endl;
//		break;
//	case 3:
//		cout << "您选择的是困难难度" << endl;
//		break;
//	}
//
//	system("pause");
//
//	return 0;
//}
//
//
//int main() {
//	//2、在循环语句中用break
//	for (int i = 0; i < 10; i++)
//	{
//		if (i == 5)
//		{
//			break; //跳出循环语句
//		}
//		cout << i << endl;
//	}
//
//	system("pause");
//
//	return 0;
//}
//
//2、 continue语句
//int main() {
//
//	for (int i = 0; i < 100; i++)
//	{
//		if (i % 2 == 0)
//		{
//			continue;
//		}
//		cout << i << endl;
//	}
//
//	system("pause");
//
//	return 0;
//}
//
//
//goto语句(解释:如果标记的名称存在,执行到goto语句时,会跳转到标记的位置)
//
//
//
//数组(所谓数组,就是一个集合,里面存放了相同类型的数据元素)
//eg1:数组中的每个数据元素都是相同的数据类型
//eg2:数组是由连续的内存位置组成的
//1、一维数组:(三种方式)
//数据类型 数组名[数组长度];
//数据类型 数组名[数组长度] = { 值1,值2 ... };
//数据类型 数组名[] = { 值1,值2 ... };
//int main() {
//
//	//定义方式1
//	//数据类型 数组名[元素个数];
//	int score[10];
//
//	//利用下标赋值
//	score[0] = 100;
//	score[1] = 99;
//	score[2] = 85;
//
//	//利用下标输出
//	cout << score[0] << endl;
//	cout << score[1] << endl;
//	cout << score[2] << endl;
//
//
//	//第二种定义方式
//	//数据类型 数组名[元素个数] =  {值1,值2 ,值3 ...};
//	//如果{}内不足10个数据,剩余数据用0补全
//	int score2[10] = { 100, 90,80,70,60,50,40,30,20,10 };
//
//	//逐个输出
//	//cout << score2[0] << endl;
//	//cout << score2[1] << endl;
//
//	//一个一个输出太麻烦,因此可以利用循环进行输出
//	for (int i = 0; i < 10; i++)
//	{
//		cout << score2[i] << endl;
//	}
//
//	//定义方式3
//	//数据类型 数组名[] =  {值1,值2 ,值3 ...};
//	int score3[] = { 100,90,80,70,60,50,40,30,20,10 };
//
//	for (int i = 0; i < 10; i++)
//	{
//		cout << score3[i] << endl;
//	}
//
//	system("pause");
//
//	return 0;
//}
//一维数组数组名
//一维数组名称的用途:
//(1)可以统计整个数组在内存中的长度
//(2)可以获取数组在内存中的首地址
//int main() {
//
//	//数组名用途
//	//1、可以获取整个数组占用内存空间大小
//	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//
//	cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;
//	cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;
//	cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;
//
//	//2、可以通过数组名获取到数组首地址
//	cout << "数组首地址为: " << (int)arr << endl;
//	cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
//	cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;
//
//	//arr = 100; 错误,数组名是常量,因此不可以赋值
//
//
//	system("pause");
//
//	return 0;
//}
//eg:数组名是常量,不可以赋值
//冒泡排序( 最常用的排序算法,对数组内元素进行排序)
//eg1比较相邻的元素。如果第一个比第二个大,就交换他们两个。
//eg2对每一对相邻元素做同样的工作,执行完毕后,找到第一个最大值。
//eg3重复以上的步骤,每次比较次数 - 1,直到不需要比较
//例子:将数组{ 4,2,8,0,5,7,1,3,9 } 进行升序排序
//int main() {
//
//	int arr[9] = { 4,2,8,0,5,7,1,3,9 };
//
//	for (int i = 0; i < 9 - 1; i++)
//	{
//		for (int j = 0; j < 9 - 1 - i; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int temp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = temp;
//			}
//		}
//	}
//
//	for (int i = 0; i < 9; i++)
//	{
//		cout << arr[i] << endl;
//	}
//
//	system("pause");
//
//	return 0;
//}
//二维数组(二维数组就是在一维数组上,多加一个维度。)
//二维数组定义的四种方式:
//
//1、数据类型 数组名[行数][列数];
//2、数据类型 数组名[行数][列数] = { {数据1,数据2 } ,{数据3,数据4 } };(直观,提高代码的可读性)
//3、数据类型 数组名[行数][列数] = { 数据1,数据2,数据3,数据4 };
//4、数据类型 数组名[][列数] = { 数据1,数据2,数据3,数据4 };
//
//二维数组数组名(二维数组名就是这个数组的首地址)
//int main() {
//
//	//二维数组数组名
//	int arr[2][3] =
//	{
//		{1,2,3},
//		{4,5,6}
//	};
//
//	cout << "二维数组大小: " << sizeof(arr) << endl;
//	cout << "二维数组一行大小: " << sizeof(arr[0]) << endl;
//	cout << "二维数组元素大小: " << sizeof(arr[0][0]) << endl;
//
//	cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl;
//	cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
//
//	//地址
//	cout << "二维数组首地址:" << arr << endl;
//	cout << "二维数组第一行地址:" << arr[0] << endl;
//	cout << "二维数组第二行地址:" << arr[1] << endl;
//
//	cout << "二维数组第一个元素地址:" << &arr[0][0] << endl;
//	cout << "二维数组第二个元素地址:" << &arr[0][1] << endl;
//
//	system("pause");
//
//	return 0;
//}
//eg:对二维数组名进行sizeof时,可以获取整个二维数组占用的内存空间大小

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-11 17:20:07  更:2021-10-11 17:21:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 19:15:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计