一、三目运算符
在C++中三目运算符返回的是变量,可以继续赋值
#include<iostream>
using namespace std;
int main()
{
//三目运算符
int a = 30;
int b = 20;
int c = 0;
//a>b?c=a:c=b;
c = (a > b ? a : b);
cout<<"c的值为:"<<c<<endl;
//在C++中三目运算符返回的是变量,可以继续赋值
(a > b ? a : b) = 100;
cout << "a=" << a <<endl; //a=100
cout << "b=" << b <<endl; //b=20
system("pause");
return 0;
}
二、if和switch区别?
switch缺点:判断时候只能是整型或者字符型,不可以是一个区间
switch优点:结构清晰,执行效率高
三、C++生成随机数
//添加随机种子,作用:利用当前系统时间生成随机数,防止每次随机数都一样
srand((unsigned int)time(NULL));
//系统生成随机数
int num = rand()%100+1;//rand()%100生成 0-99之间的随机数,包括0和99
使用srand((unsigned int)time(NULL));代码需要在代码首部添加 time系统时间头文件包含
#include<ctime>
四、一维数组
一维数组定义格式:
数据类型 数组名[数组大小];
数据类型 数组名[数组大小]={值1,值2,值3,...};
数据类型 数组名[]={值1,值2,值3,...};
int array1[5]={1,2,3,4};
int array2[5];
int array3[5] = {3,5};//只初始化前两个元素,默认其他元素为0
int array4[] = {3,4,5,6};//编译器计算元素个数
double array6[20] = {}; //所有元素被设为0
一维数组名称用途:
1.可以统计整个数组在内存中的长度 sizeof(arr)
2.可以获取数组在内存中的首地址
数组名是常量,不可以对数组名进行复制操作。
五、二维数组
1.二维数组定义的四种方式:
1.数据类型 数组名[行数][列数];
2.数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3,数据4}};
3.数据类型 数组名[行数][列数] = {数据1,数据2,数据3,数据4};
4.数据类型 数组名[ ][列数] = {数据1,数据2,数据3,数据4};
以上四种方式中,第二种更加直观,提高代码可读性
2.二维数组数组名
二维数组名称的两种核心用途:
- 查看二维数组所占内存空间
- 获取二维数组首地址
注意:当访问数组中某一个元素的地址时需要添加 取地址符 &
#include <iostream>
using namespace std;
int main()
{
//二维数组名称用途
//1.可以查看占用内存空间大小
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;
//2.获取二维数组首地址
cout << "二维数组首地址为:" << arr << endl;
//注意:当访问数组中某一个元素的地址时需要添加 取地址符 &
cout << "二维数组第一个元素地址" << &arr[0][0] << endl;
system("pause");
return 0;
}