一:
^_^指针就是一种单纯的数据类型,指针变量与普通的变量本质上没有任何区别。
“一般来说”,指针变量中存储的就是一个地址。
也就是说,指针和普通变量是一样的,可以赋值,可以运算,当然会比普通变量多一些使用方法
int* p = &a;(int*定义一个int*类型的变量)
称为 指向int型的指针。
int *p;//书上的写法
int* p;//更容易理解的写法(int*就是变量p的类型,p为变量名)
char* b;//(char*为变量类型,b为变量名)
二:
在此梳理一下数据与地址的概念:
简单来说,地址是数据在内存中的位置。
当我知道这个数据位置在哪,就可以进行读写操作等。是指针寻址的基本原理。
指针变量有自己的地址,也就是在内存中的位置。同时在此存了一个数据,但一般来说,存的是一个地址。
在32位的程序中,虚拟地址的大小为4字节。所以所有指针变量数据的宽度也为4字节,与指向的数据类型是无关的。(int*/char*/double*类型的指针变量都为4字节)
同理,在64位的程序中,指针变量的宽度为8字节。
三:
操作符:&(取地址操作符) *(间接操作符)
** ** ** ** **
使用函数传递参数时,直接传数据是不改变原变量的,而传地址就可以改变原变量。
形式参数有独立的空间,形参是实参的一份临时拷贝,所以修改形参不会影响实参。
☝️传参数是否要传地址 取决于是否有必要改变实参的值。
四:数组操作
我们都知道,数组在内存中的排列是线性的,所以我们可以通过一个指针指向这个数组的首地址,来进行操作。
☝️使用函数时,想要传递数组,其实就是传递数组的首地址。
结论:指针变量可以直接当做数组使用。
就分享这么多,希望大家满意.