指针初阶
点击此处可以查看一些简单的题目[指针和数组的烧脑题目]
(https://blog.csdn.net/wang_yiduo/article/details/88530349)
-指针定义
指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值,存这个这个值的地方被称作这个值的地址,这个值的地址就是指针,意思是可以通过指针来找到这个值所在的内存单元,然后进而找到这个值具体是多少
- 指针变量
指针是一个变量,用来存放内存单元的地址(编号)
代码演示:
#include <stdio.h>
int main()
{
int a = 1;//在内存中开辟一块空间
int *p = &a;//这里我们对变量a,取出它的地址,可以使用&操作符。
//将a的地址存放在p变量中,p就是一个之指针变量。
printf("*p=%d\np=%p\n&a=%p",*p,p,&a);
return 0;
}
结果为:
注意:int*指的是整形指针变量,*p指的是指针变量解引用,二者中的 *是不同的,第一个代表它是指针变量,第二个代表解引用,指的是求存在指针p这个地址的值
结论:可以明显看出指针变量p和变量a的地址是相同的,所以指针变量就是存放变量的地址(存放在指针中的值都被当作地址来处理)
-指针变量的大小
首先一个字节占8个位,所以在32位的系统上,一个指针变量的大小就是4个字节(32/8=4),在64位系统上,一个指针变量的大小就是8个字节(64/8=8)
- 指针编址的空间
- 在32位的系统上,指针最多能存储232个地址,也就是4G的空间
(232=232/1024KB=232/1024/1024MB=232/1024/1024/1024GB=4GB) - 在64位的系统上,指针最多能存储264个地址,这个空间就非常大了,目前