c++笔记第三天
数组
定义
1,数据类型 数组名[数值长度];
2,数据类型 数组名[数值长度]={值1,值2,...};
3,数据类型 数组名[ ]={值1,值2,...};
数组下标从零开始,内存中连续存储。
一维数组名用途:
int arr[]={1,2,3,4,5,6,7,8};
arr //获取首元素地址 ,arr地址常量
&arr整个数组的首地址
sizeof(arr)//获取整个素组再内存中的大小
sizeof(arr)/sizeof(arr[0])=元素个数
冒泡排序
总轮次数 =元素个数-1
每轮循环次数=元素个数-轮数-1
二维数组
定义
数据类型 数组名[行数][列数]={数据1,数据2...}
数据类型 数组名[行数][列数]={{数据1,数据2...},{数据3,数据4...}...}
其中行数可省略,列数不能省略
函数
定义
返回值类型 函数名 (参数2,参数1,...) {
语句;
return 0;
}
函数调用 函数名(参数)
函数值传递时形参发生改变不会改变实参
函数分文件编写
1、创建头文件.h
2、创建.cpp文件
3、在头文件中写函数下声明
4、在.cpp文件写函数定义
指针
存放内存地址
定义
数据类型* 变量名 = &变量名;或数据类型* 变量名=NULL;
* 解引用
& 取内存地址符
指针在32位系统占4个字节,在64为系统占8字节。
0--255之间内存系统使用一般不可访问;
NULL空指针
注意野指针问题
const int*p =&a 或 int const *p=&a 不可以通过*p修改变量a的值但是p指向可以更改指向别的变量。
int* const p =&a 表示指针只能指向变量a 但是可以通过*p改变变量a的值
const int* const p=&a 表示指针指向不可以改,也不可以通过指针*p修改a值。但是可以通过a改变a值。
1 例如: 2 int a= 5; 3 const int * const p =&a; 4 *p =4 ; //出错 5 a=4; //不会出错
用指针访问数组
1 int a[10]={1,2,3,4,5,6,7,8,9,10}; 2 int *p =a; 3 for(int tem=0;tem<10;tem++) 4 { 5 cout<<*p<<endl; 6 p++;//p++表示向后移动了一个int 7 }
指针和函数
在被调用函数中操作实参那就传地址,被调用函数不想修改实参就用值传递 (没有绝对,这里只是相对的,具体一实际情况拿捏,)
利用指针实参可以把数组传递给形参
例如
1 #include<iostream> 2 using namespace std; 3 void PrintArr(int *arr,int lenarr) 4 { //实现打印数组 5 for (int i = 0; i < 10; i++) 6 { 7 cout << arr[i] << endl; 8 } 9 } 10 void BubbleSort(int *arr, int lenarr)//冒泡升序 11 { 12 for (int i = 0; i < lenarr - 1; i++) 13 { 14 for (int j = 0; j < lenarr - i - 1; j++) 15 { 16 if (arr[j]> arr[j+1]) 17 { 18 int tem =arr[j]; 19 arr[j] = arr[j+1]; 20 arr[j + 1] = tem; 21 22 } 23 } 24 25 } 26 } 27 28 29 30 int main() 31 { 32 int arr[10] = { 4,3,6,9,1,2,10,8,7,5 }; 33 int lenarr = sizeof(arr) / sizeof(arr[0]); 34 35 36 37 BubbleSort(arr, lenarr); 38 PrintArr(arr, lenarr); 39 system("pause"); 40 return 0; 41 }
结构体定义
struct 结构体名{成员1;成员2;成员3;};
注意:成员3后面也有分号的,别漏了。
结构体变量创建
1、struct 结构体名 变量名
2、struct 结构体名 变量名={成员1,成员2,成员3};
3、定义结构体是创建变量。如struct name {name1;name2;name3}变量1,变量2;
创建变量时在c++中struct关键字可以省略
成员访问格式
变量名.成员名
通过变量名点成员名来访问结构体成成员;
结构体数组
把结构体存 到数组中,
定义格式
struct 结构名 数组名[元素个数]={{},{},{},{}}
结构体指针
通过指针操作结构体成员,利用操作符->可以通过结构体指针访问结构体属性
定义
struct 结构体名 *指针名=&结构体变量;
指针->结构体成员名

浙公网安备 33010602011771号