C++学习5

十、指针

1、指针的定义与使用

1、 指针的基本概念
指针的作用:可以通过指针间接访问内存
内存编号是从0开始记录的,一般用十六进制数字表示
可以利用指针变量保存地址
2、 指针变量的定义和使用
指针变量定义语法:
数据类型 *变量名;

 2、指针所占空间

在32(X86)位操作系统下,指针是占4个字节空间大小,不管是什么数据类型
在64(X64)位操作系统下,指针是占8个字节空间大小,不管是什么数据类型

 3、空指针和野指针

空指针:指针变量指向内存中编号为0的空间

用途:初始化指针变量

注意:空指针指向的内存是不可以访问的

0~255之间的内存编号是系统占用的,因此不可以访问

野指针:指针变量指向非法的内存空间

总结:空指针和野指针都不是我们申请访问的空间,因此不要访问

4、const修饰指针

三种情况:

(1)const修饰指针 ···常量指针   const int*p=&a;

(2)const修饰常量 ···指针常量   int * const p=&a;

(3)const即修饰指针又修饰常量  const int*const p=&a;

常量指针特点:指针指向可以修改,但是指针指向的值不可以改

*p=20//指针指向的值不可以改

指针常量特点:指针指向不可以修改,但是指针指向的值可以改

p=&b;//指针指向不可以修改

即修饰指针又修饰常量特点:指针指向不可以修改,但是指针指向的值不可以改

4.指针和数组

作用:利用指针访问数组中元素

5.指针和函数 

作用:利用指针做函数参数,可以修改实参的值

值传递;

地址传递。

6、指针、数组、函数

十一、结构体 

1、结构体基本概念
结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
2、结构体定义和使用
语法:struct  结构体名 {结构体成员列表};


通过结构体创建变量的方式有三种:
•struct 结构体名 变量名
•struct 结构体名 变量名={成员1值,成员2值...}
•定义结构体时顺便创建变量

3、结构体数组

作用:将自定义的结构体放入到数组中方便维护

语法:struct 结构体名 数组名[元素个数]={ {},{},{}...}

4、结构体指针 

作用:通过指针访问结构体中的成员

利用操作符->可以通过结构体指针访问结构体属性

5、 结构体嵌套结构体

作用:结构体中的成员可以是历经一个结构体

eg:每个老师辅导一名学员,一个老师的结构体中,记录一个学生的结构体

6、结构体做函数参数

作用:将结构体作为参数向函数中传递

传递方式:

(1)值传递

(2)地址传递

总结:如果不想修改主函数中的数据,用值传递,反之用地址传递

7、结构体中const使用场景 

作用:用const来防止误操作

 

 


版权声明:本文为m0_64311080原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。