#include<stdio.h> intmain() { int a = 10;//在内存中开辟一块空间 int *p = &a;//这里我们对变量a,取出它的地址,可以使用&操作符。 //a变量占用4个字节的空间,这里是将a的4个字节的第一个字节的地址存放在p变量中,p就是一个之指针变量。 return0; }
总结:
指针变量是用来存放地址的,地址是唯一标示一个内存单元的。
指针的大小在32位平台是4个字节,在64位平台是8个字节。
2 指针和指针类型
1 2 3 4 5 6
char *pc = NULL; int *pi = NULL; short *ps = NULL; long *pl = NULL; float *pf = NULL; double *pd = NULL;
char* 类型的指针是为了存放 char 类型变量的地址。 short* 类型的指针是为了存放 short 类型变量的地址。 int* 类型的指针是为了存放 int 类型变量的地址。
指针的大小都是4字节,或者8字节,大小都一样,那么为什么要分不同的类型,那指针类型的意义是什么?
2.1 指针的解引用
1 2 3 4 5 6 7 8 9 10
#include<stdio.h> intmain() { int n = 0x11223344; char *pc = &n; int *pi = &n; *pc = 0; //在调试的过程中观察内存的变化。 *pi = 0; //在调试的过程中观察内存的变化。 return0; }