今天遇到了一个 百思不得其解的问题。

c语言代码:

#include <stdio.h>
int main(){
 int length=10;
 int arr[length] ;
 for(int i=0;i<length;i++)
  printf("arr[%d]=%d\\n",i,arr[i]);
}

Java代码

public class Test{
 public static void main(String[] args){
  int length=10;
  int arr[]=new int[length];
  for(int i=0;i<length;i++)
   System.out.printf("arr[%d]=%d\\n",i,arr[i]);
 }
}

运行一下。就看到结果了:

java编辑器,会给数组赋默认值。boolean默认false,数字类型的0,对象null。但是c语言并不会初始化赋值。因为c是指针,分配了指针空间,但是并不会对这块内存赋值。所以在c(objective-c)中,一定别忘了给数组初始化。