1,C语言数组定义

int a[5][5] 可以, float a[5][5]也可以, char a[5][5]还可以。。 只是,第一个是整型的。第二个是符点型的。第三个是字符型的。
可以的啊,表示其中的每个成员都是float类型的
不行

C语言数组定义

2,C语言数组定义

不行的,C语言不允许动态的数组类型。你可以用指针实现: int n; scanf("%d",&n); int *a=(int*)malloc(sizeof(int)*n);
这是不行的. 定义静态数组时长度必须是常量.所以如果n要从键盘输入的话,就必须定义成动态数组.方法如下:*/ int i, n ,*a; scanf("%d", &n ); a =( int* )malloc( n * sizeof(int) ); //动态申请数组,长度为n //使用时就这样: for( i = 0; i < n; i++ ) scanf("%d", &a[ i ]); }

C语言数组定义

3,C语言数组定义

这是不行的. 定义静态数组时长度必须是常量.所以如果n要从键盘输入的话,就必须定义成动态数组.方法如下:*/ int i, n ,*a; scanf("%d", &n ); a =( int* )malloc( n * sizeof(int) ); //动态申请数组,长度为n //使用时就这样: for( i = 0; i < n; i++ ) scanf("%d", &a[ i ]); }
这个的确是错误的。若想要这样定义int a[n];可在程序前加上#define n 4,然后把前面的int n=4;删了,这样就行了。
int n=4;这一句实践定义了n为int型变量,给它赋值4后当然i还是变量,因为i是可以变的量,而数组要求开辟一个指定的空间,所以括号中为了与之对应就不能用变量,只能是常量,比如int a[5];或在程序前已定义了宏#define n=5;在写成a[n]就可以了,因为这时的n已经代表一个常量了,而不是像int i=4中的i(还是个变量,因为你以后可以改变它的值)
不知道是那本书,总之数组是值类型,编译的时候就确定好空间的,肯定不能用变量的,不然编译器哪里知道要分配多少空间。

C语言数组定义


文章TAG:数组  c语言  语言  定义  c数组  
下一篇