学习网址:https://www.bilibili.com/video/BV1et411b73Z/?spm_id_from=333.337.search-card.all.click&vd_source=ecd5b371306b936a64b998d46eb11126
2022/11/23 Day1
#define day 7
和const int month = 12;
float f1 = 3.14f;
cout << "test";
这样也是没问题的2022/11/25 Day2
ctrl+shift+/
2022/11/26 Day3
表达式1 ? 表达式2 :表达式3
(a > b ? a : b) = 100;
,意为把a和b中比较大的变量赋值为100。cout << a << '\n' << b << endl;
,当然也可以用endl换行,但是还是\n好一点cin >> a >> b;
break;
,否则它会一直往下执行switch (score){
case 8:
cout << "非常好" << endl;
break;
default:
cout << "烂片" << endl;
break;
}
C++生成随机数
#include
#include
srand((unsigned)time(NULL)); // time(NULL)会返回当前日历的秒数(从1970年到现在的秒数)
int a = rand() % (b - a + 1) + a; //生成[a,b]之间的随机数
int b = rand() % (b - a ) + a; //生成[a,b)之间的随机数
产生[a,b]的随机数,可以使用 (rand() % (b-a+1))+a;
;产生[a,b)的随机数,可以使用 (rand() % (b-a))+a;
#include
然后pow(m,n)
表示计算m的n次方goto FLAG;
,目标位置写FLAG:
,注意那个:别漏了,并且这个地方是:而不是;int len = sizeof(arr) / sizeof(arr[1])
int arr4[][3] = { 1,2,3,4,5,6 };
,既然已经定义了列数,再定义具体的数据量,那我不写行数系统也能知道有几行。2022/11/29 Day 4
int test(int &a,int &b)
,但注意,这里只是形参而已,命名不用和实参一样。//pair是包含在iostream头文件里的,作用是拼装任意类型的两个数据作为返回,如果是三个数据则要使用tuple,但这个是要引入一个如下的头文件
#include
pair<int,int> swap(int num1, int num2) {
cout << "交换前:" << endl;
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
int temp = num1;
num1 = num2;
num2 = temp;
cout << "交换后:" << endl;
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
pair<int, int> res;
res = make_pair(num1, num2);
return res;
}
int main() {
int a = 10;
int b = 20;
pair<int,int> res = swap(a, b);
cout << "mian中的 a = " << res.first << endl;
cout << "mian中的 b = " << res.second << endl;
return 0;
}
指针专题
int *p
,赋值:p = &a
cout << p
则为a的地址,如果cout << *p
则为a的值,同理,想要通过指针修改某个数的值也要通过*p进行赋值const int * p
,const修饰int ,叫常量指针,既然修饰*
了,那么所有p的操作都不能进行了,所以常量指针只能修改指向,不能通过*p修改指向位置的具体数值。int * const p
,const修饰p,相当于p真实的内容(内存地址)不能被改变,所以指针的指向不能改变了,但是可以通过*p来修改指向内存的具体数值。int* p = arr
即可完成定义,此时p指向数组第一个元素的地址,因为是int型指针,所以下一个数组元素的地址直接就用p++即可。void swap(int * p1, int *p2)
,当然也可以写成函数形式void swap2(int &a, int &b)
(int * arr)
也可以写(int arr[])
,后期的用法都是一模一样的,因为当数组名传入到函数作为参数时,会退化为指向首元素的指针结构体专题
stu->name = "test"
形式。void printStudent(const student *stu)
此处加const的目的是防止函数体中的误操作