C语言 指针
指针是什么?
~~ 在计算机科学中,指针
(Pointer) 是编程语言中的一个对象,利用地址,它的值直接指向 (points to) 存在电脑存储器中另一个地方的值,由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。所以,将地址形象化的称为 “指针”, 意思是可以通过它找到以它为地址的 内存单元
int main() {
int a = 10; //在内存中开辟一个空间存放a
int* p = &a; //创建一个指针变量指向a
printf("%d\n", *p);
return 0;
}
指针就是变量,用来存放地址的变量(存放在指针中的值都被当成地址处理)
- 指针是用来存放地址的,地址是唯一标示一块地址空间的
- 指针的大小在32位平台是4个字节,在64位平台是8个字节
指针类型决定了指针进行解引用操作的时候,能访问空间的大小
int* p : *p能访问4个字节
char* p : *p能访问1个字节
double* p : *p能访问8个字节
根据 不同类型
选择不同的 指针
这个细节有必要注意。
int main() {
int a = 10;
int* pa = &a;
char* pb = &a;
printf("%p\n", pa);
printf("%p\n", pa + 1);
printf("%p\n", pb);
printf("%p\n", pb + 1);
return 0;
//pa = 000000E2C03FF584
//pa + 1 = 000000E2C03FF588
//pb = 000000E2C03FF584
//pb + 1 = 000000E2C03FF585
//对比一下,int类型的指针加一后增加了4个字节
//而 char 类型只增加了一个字节
}
指针类型决定了指针走一步能做多远
int* p : p + 1 -> 4
char*p : p + 1 -> 1
double*p : p + 1 -> 8