A 是对的,换行会看的更加清晰。
#define size 10 //把size的宏定义为10
char str1[size]的意思就是char str1[10]
char str2[size+2]的意思就是char str2[12]
B,char str[];里面应该要放入具体的容量,比如 char str[10];
C,int num['10']是错误的,int num[10]是对的。
D是错误的,C语言不允许这种写法,不允许定义的变量出现在数组里,因为变量值的改变,就会导致数组的破坏,这样会破坏程序的健壮性。