第七节:指针

一.指针的基本概念

指针的作用:可以通过指针间接访问内存

内存编号是从0开始,一般用十六进制数字表示

可以用指针变量保存地址

二.指针的定义

指针定义的语法:数据类型 *指针变量名;

使用指针获取变量地址时,变量前面要加一个&号

第七节:指针_第1张图片

使用指针

可以通过解引用的方式来找到指针指向的内存

指针前面加*代表解引用,即提取内存地址代表的内容,找到指针指向内存中的数据,并可以直接进行修改

第七节:指针_第2张图片

第七节:指针_第3张图片

三.指针所占用的内存空间

 在默认情况下,VS使用的是32位平台编程,指针的大小为4个字节

第七节:指针_第4张图片

当将“VS”中的解决方案平台x86改为x64之后,

指针占内存空间的大小为8个字节

第七节:指针_第5张图片

四.空指针和野指针

(一)空指针:指针指向内存编号为0的空间

用途:初始化指针变量

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

第七节:指针_第6张图片

内存编号0~255是系统占用内存,用户不可访问

(二)野指针

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

第七节:指针_第7张图片

使用(int*)可以将数据强转成地址

注意:空指针和野指针都不是我们申请的空间,不可以访问

五.const修饰指针

(一)const修饰指针——常量指针

指针指向可以改,指针指向的值不可以修改

第七节:指针_第8张图片

失败代码案例:

第七节:指针_第9张图片

(二)const修饰常量——指针常量

指针指向的值可以改,指针指向不可以改

第七节:指针_第10张图片

失败代码案例:

第七节:指针_第11张图片

(三)const既修饰指针又修饰常量

指针的指向和指针指向的值都不可以改

第七节:指针_第12张图片

六.指针和数组

作用:利用指针指向数组中的元素

代码示例:

第七节:指针_第13张图片

因为指针占用四个字节,“指针++”便会以四个字节的长度跃进,同时数组为顺序存储结构,int类型也占用4个字节,因此可以做到以指针来指向数组

七.指针和函数

值传递:

第七节:指针_第14张图片

利用指针作函数参数,可以改变实参的值

地址传递:

第七节:指针_第15张图片

不想修改实参,就用值传递,想修改实参,就用地址传递

八.指针、数组、函数

代码案例:将数组排序

第七节:指针_第16张图片

注意:不能在函数中求数组的长度,因为传入的是函数内存地址

另外:arr[j]=*(arr+j);int arr[]=int *arr

你可能感兴趣的:(#,C++基础编程,c++,算法,数据结构)