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 结构体名 *指针名=&结构体变量;

指针->结构体成员名

 

posted @ 2021-02-08 14:33  两天阿来  阅读(83)  评论(0)    收藏  举报