指针是一个存放地址的变量,存放的地址指向了另一个变量。
int main()
{
int a = 4;
int * p = &a;
printf("%d\n",* p);//打印p指向的(整形变量a的内容)
printf("%p\n", p);//打印p所存储的(a的地址)
printf("%p\n", &a);// 打印p所存储的(a的地址)
return 0;
}
*说明p是一个指针 .int 说明p指向了一个整型变量a.
&a即是取a的地址.
通过指针改变变量的值
*p = 6;
printf("%d", *p);
指针的大小在32位平台是4个字节,在64位平台是8个字节
指针的类型决定了向前或向后走一步有多大的距离
int main()
{
int n = 10;
char *pc = (char*)&n;
int *pi = &n;
printf("%p\n", &n);
printf("%p\n", pc);
printf("%p\n", pc + 1);
printf("%p\n", pi);
printf("%p\n", pi + 1);
}
对指针解引用的时候有多大的权限(能操作几个字节)。 比如: char* 的 指针解引用就只能访问一个字节,而 int* 的指针的解引用就能访问四个字节。