数组和指针是c语言的关键。最核心的一点。
数组不是指针,反之依然.
但是大部分情况下数组和指针可以转换互用.
下面写些不能互用的情况:
外部变量定义, int a[5]; extern int a[];//大小可不写 extern int*a//错误
数组是在栈区stack,指针是在堆区heap。
堆区往往比栈区大很多,优先使用。
指针可以互传,但是数组不能互传,拷贝只能用strcmp / memcmp等。
指针的互传必须要类型完全一致。比如 int a[5][5]; int b[][5]; a,b可以互传。int** c; a,c显然是不能互传的。
数组形式作为函数的形参,实际上是指针。 fun(int a[ ] ):a其实是一个指针。