
正文
c语言数组能不能先定义,c语言数组必须先
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C里,为什么数组不能先定义再赋值?
1、,你定义的数组是a[2],也就是总共有两个元素。
2、a[2][3]={{1,2,3},{4,5,6}};表示将数组a的[2,3]这个单元定义为{{1,2,3},{4,5,6}};但是这怎么可能,一个单元就一个数,你还赋予他一个数组。。
3、首先C语言里面的数组,一旦定义好了,是无法改变类型和长度的,也不是指针,不能改变指向的内容,所以如下这种写法 int a[10], b[10];a = b;是无法编译的。
相关问答
Q1: c语言如何先声明后初始化字符数组
1、先定义后赋值并不能称为初始化,只能叫做对数组进行赋值操作。
2、static char c[]=C program;当对全体元素赋初值时也可以省去长度说明。例如:static char c[]={`c`,` `,`p`,`r`,`o`,`g`,`r`,`a`,`m`};这时C数组的长度自动定为9。
3、可以用memset函数在程序开始时初始化数组。这条命令这在已经修改了数组之后又想将它重置为全0特别有用。
4、C语言允许用字符串的方式对数组作初始化赋值。
5、用字符串常量来初始化字符数组:在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。char str[]={I am happy};也可以省略花括号。
Q2: ...先定义一个变量,再给该变量赋值,再用它来定义数组吗?
严格说是不可以的 ! 有的编译环境 可以这样, 有的就会报错。 建议不要这样 用。
第一:因为系统给数组分配内存地址的时候是在~(貌似好像是编译的时候)而 这个时候系统还没有给变量分配内存,即这时候整形变量a是不存在的。不能用 一个不存在的数来定义数组的长度。
不一定。通常是先定义后使用。在scatter to 数组名 select * from 表名 into array 数组名 中数组可以不定义直接使用,系统会自动定义到数组大小刚好够用为止。
可以。但不要想着直接用tets[]={abcde};---这样是不行的。你可以用scanf(%s,test),或者用gets(test)来进行字符串的读入。
const a=100; int arr[a]; 与 int arr[100]; 作为数组 arr 来说 没有区别。因为 a 是常量,只能做 右值,不能做左值。与 100 是常量 一样。 只不过 分配的 内存地址可能 不同。
Q3: c语言中数组能不能先定义,然后直接赋给初值。
1、a[2][3]={{1,2,3},{4,5,6}};表示将数组a的[2,3]这个单元定义为{{1,2,3},{4,5,6}};但是这怎么可能,一个单元就一个数,你还赋予他一个数组。。
2、先定义后赋值并不能称为初始化,只能叫做对数组进行赋值操作。
3、一般比较简单就是数组名[下标]来引用,先定义后用,如果是小数的话,直接自动取整。
4、C语言中,同变量一样;数组也必须先定义后使用。一维数组的定义形式:类型标识符 数组名[常量表达式];例如int a[10]; 其中a为地址常量。
c语言数组能不能先定义的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言数组必须先、c语言数组能不能先定义的信息别忘了在本站进行查找喔。







