c语言,数组定义时,可以这样写arr[ ] ,不写下标,可以么?为什么?

如题所述

只有在直接初始化的时候,可以。
比如 arr[] = {1, 2, 3};
没有初始化时就不可以。
大概就是要知道数组的大小,如果直接就初始化了,那也等于知道数组大小。
更根本的原因就是,语言和编译器的编写者这么设定,并在里面这么实现的。他们喜欢这种方式。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-13
可以,但是得列出数组元素,系统根据元素自动分配存储空间。
第2个回答  2013-02-13
可以啊,你这样写系统帮你分配内存空间,不过你这样写的时候得在那时初始化。
第3个回答  2013-02-13
不行,你不告诉它你这个数组有多大它怎么给你安排存储空间

c语言二维数组下标越界?
在C语言中定义了数组以后,对数组元素的各种访问,C语言编译系统都是不做下标范围检查的,但是如果编程着自己疏于检查而使下标越界使用的话,就会造成意想不到的错误,造成的结果也是不可预料的。所以编程应当绝对避免越界操作数组。

c语言中arr是什么
C语言中arr是数组的名称。以下是详细的解释:在C语言中,arr通常被用作数组的名称。数组是一种数据结构,用于存储相同类型的元素集合。这些元素可以是整数、字符、浮点数等。通过数组,我们可以存储一系列有序的值,并通过索引访问每个值。当我们声明一个数组时,我们可以指定数组的元素类型和数组的名称。...

数组定义中,数组名后是用方括号括起来的常量表达式
如果数组长度是变量或者无法在编译时确定的值,那么数组所占的内存空间就无法确定,这会给内存管理带来极大的困难。在定义数组时,我们常常会看到这样的语法:数组类型数组名[常量表达式]。这里的常量表达式就是数组的长度。例如,在C语言中定义一个整型数组,长度为10,可以这样写:intarr[10];。。需要注...

c语言数组定义
1、一维数组 定义公式:类型说明符 数组名[常量表达式];注意:常量表达式包括常量与符号常量,不能包含变量。例如:int a;char c;上面的示例中,定义了一个int整型数组,数组名为a,定义的数组称为数组 a。还定义了一个字符类型的数组,数组名为c,定义的数组称为数组 c。此时数组 a 中有 5 个元...

C语言书上f (int. arr[], int n)是用数组名做参数的,我想问可以把arr...
不行,去掉之后,第一个变量就是整型,而不是数组了

C语言的二维数组和一维数组:为什么上面是arr[2][4];下面是arr[0],arr...
下面的arr[0]指的是这个二维数组的第一行,展开的话就是arr[0][0],arr[0][1],arr[0][2],arr[0][3],arr[1]指的是二维数组的第二行,这个程序就是把arr[0][3]换成了字符'&',printf的结果就是 you&me。

C语言,二维数组的下标问题问题
前者可定义的前提是给出了全部或部分元素的值,如arr[][100]={1,2,3,4……},这个时候由于定义了列数,系统会自动在第100个数之后换行,而arr[100][]={1,2,3,4……}的话就之定义了行数,至于第一行在何处换行就不知道了,因为列宽不知道。

c语言中下标移位的原理是什么?
在C语言中,下标定义为数组arr[]和数组brr[n]。下标用于数组中。 arr[1]和brr[1]是下标相同的元素。当数组arr[1]中的数字满足条件时,将执行移位计算。C语言是向左移动减少,向右移动增加。 例如: int arr[4]={5,6,7,8} Printf(“%d、%d、%d、%d”、arr[0]、arr[1]、arr[2]、arr[3]);\/\/输出5...

C\/C++变量定义数组长度问题
前两个图片说的确实是用变量定义数组长度的(后面再说),黑框里的代码就不是了,那是取arr数组的下标为i的值赋给Te——这无论C或C++都是合法的操作。纯C编译器是不允许用变量定义数组长度的,编译都过不了。而后来的有些C++的编译器允许这样做的,但大多数用来做定义数组长度的变量要用const修饰,...

c语言中如何定义数组
3. 数组大小:这是指数组可以存储的元素数量。在定义数组时,需要指定一个整数来表示数组的大小。这个大小决定了数组可以存储多少个元素。需要注意的是,数组的大小在定义后是不能改变的。例如,`int arr[10]`定义了一个可以存储10个整数的数组。举个例子,如果要定义一个可以存储5个整数的数组,可以...

相似回答