1数组和指针声明的差别
声明数组:为数组分配内存,为数组名分配内存(指针常量 4个字节)
指针:为指针分配内存(指针变量 4个字节)
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h>#include <math.h>void main(){int a[4];//int *p ;p指向的单元没有初始化printf("%d ",*a);//printf("%d ",*p);} |
1 | warning C4700: local variable 'a' used without having been initialized |

a没有初始化,但是 *a的内存已经分配
1 2 3 4 5 6 7 8 9 10 | #include <stdio.h>#include <math.h>void main(){//int a[4];int *p ;//p指向的单元没有初始化//printf("%d ",*a);printf("%d ",*p);} |
1 | warning C4700: local variable 'p' used without having been initialized |

没有初始化,也没有分配内存,会出现错误。
浙公网安备 33010602011771号