指针:
- 指针是一个变量,这个变量是用来存放地址的,地址唯一标识一块内存空间。
- 指针的大小是固定的4/8个字节(由平台决定,32位/64位)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 1;
char b = 'a';
int arr[5] = { 0 };
int* p = &a;
char* pp = &b;
int(*ppp)[5] = &arr;
printf("%d\n", sizeof(p));
printf("%d\n", sizeof(pp));
printf("%d\n", sizeof(ppp));
system("pause");
return 0;
}
![这里可以看到求整形指针,字符指针,数组指针的结果都是4,因为我的是32位平台]](https://img-blog.csdnimg.cn/20181206183643122.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTc0Nzk0,size_16,color_FFFFFF,t_70)
3.指针是有类型的。指针字节长度都是4或8,指针的长度有什么作用呢,
指针类型决定了±整数时候的步长,指针解引用操作的权限。
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[5] = { 1, 2, 3, 4, 5 };
char b[5] = { 'a', 'b', 'c', 'd', 'e' };
printf("%d\n", *(a + 1));
printf("%c\n", *(b + 1));
system("pause");
return 0;
}