有个疑惑待解
本人新手。看很多c语言教程上说数组是不能动态赋值的,即以下形式是非法的:int n;scanf("%d",&n);int m[n]。但是我实际编写时发现编译和运行都没问题,不知道是为什么。以下是我的实例:
#include<stdio.h>
void main()
{
int n,i;
printf("input:");
scanf("%d",&n);
int m[n];
printf("inputs:");
for(i=0;i<n;i++)
scanf("%d",&m[i]);
for(i=0;i<n;i++)
printf("%4d",m[i]);
printf("\n");
}
上面是源码,以下是编译和运行过程。注:本人是在linux系统下用gcc编译器。
loongson@LOonux:~$ gcc -g -o shuzu.o shuzu.c
loongson@LOonux:~$ ./shuzu.o
input:4
inputs:1 2 3 4
1 2 3 4
没有任何问题!