指针的大小
指针的大小只取决于平台(64位指针占8个字节 32位指针占4个字节)
指针的类型
虽然同一平台下,不同类型的指针占的内存空间是相同的,但是指针其实是栈里存着,堆里的地址 ,所以栈里面的空间大小是相同的,但是不同类型指针在堆里面所占的空间大小是不同的,所以指针要分类型,因为对不同类型的指针进行操作时,有可能引起不可预料的后果。比如不同类型的指针进行赋值时会出现结果不一致的现象(在大端存储下的 int* 和 char* 互相赋值)。再比如不同指针类型 +1 实际加的空间大小是不一致的。
指针的应用
#include<stdio.h>
#include<string.h>
int main() {
int arr[5] = {0,1,2,3,4};
int* p = arr;
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
memset(arr,0x00,sizeof(arr));
for (int i = 0; i < 5; i++) {
printf("%d", arr[i]);
}
printf("\n");
for (int i = 0; i < sizeof(arr)/sizeof(arr[0]);i++) {
*(p + i) = 1;
}
for (int i = 0; i < 5; i++) {
printf("%d