数组定义中对常量表达式的要求?
常量表达式只能是常量或符号常量,代表数组元素的个数或长度,不允许使用变量。c语言不检查下标越界。
c语言数组长度是什么意思?
所谓数组,就是相同数据类型的元素按照一定的顺序排列的集合,即有限个相同类型的变量用一个名字命名,然后用数字来区分它们的变量。这个名字叫做数组名,数字叫做下标。组成数组的变量称为数组的组成部分、数组的元素,有时也称为下标变量。数组是将几个相同类型的变量以有序的形式组织起来,以便于编程处理的一种形式。这些同类数据元素的有序集合称为数组。
在C语言中使用数组时,必须首先指定类型。
数组描述的一般形式是:类型描述符数组名[常量表达式],...;其中类型描述符是任何基本数据类型或构造数据类型。阵列名称是用户定义的阵列标识符。方括号中的常量表达式表示数据元素的数量,也称为数组的长度。
数组的长度是数组中元素的数量。
关于变长数组(VLA)的问题:原来的C89标准中不允许使用变长数组,但是在C99标准中增加了对VLA的支持,但是支持的编译器不多,也没有多少人敢用这个变长数组,因为堆栈溢出的安全问题,所以在C11标准中规定为可选函数。
串和数组的区别?
任何数据都可以写入字符数组中的任何位置,包括0x0,并且字符串的末尾只有0x0。一旦这些数据可用,字符串结束。计算机只有二进制字节数组;字符、字符串、空字符终止符、数组等。只存在于人类大脑中。
1.字符数组是指用来存储字符数据的数组。其定义的一般形式是:char数组名[数据长度]。字符数组用于存储字符或字符串,字符数组中的一个元素存储一个字符,占用内存一个字节。C语言没有字符串类型,字符串存储在字符数组中。
2.示例:
charc[10];
c[0]I;c[1];c[2]l;c[3]o;c[4]v;c[5]e;c[6];c[7]y;c[8]o;c[9]u;
c被定义为一个字符数组,包含10个元素。
因为字符数据是以整数(ASCII码)的形式存储的,所以也可以使用整数数组来存储字符数据,例如:
intc[10];
但此时每个数组元素占用2个字节的存储单元,浪费存储空间。[1]
字符数组也可以是二维或多维数组,例如:
charc[5][10];
也就是二维字符的数量团体。
3.字符串主要用于编程。概念描述、功能解释、使用细节见正文。这里补充一下,字符串类似于存储中的字符数组,所以可以提取每一位的单个元素,比如s"abcdefghij",那么s[1]"a"和s[10]j,而字符串的零位正好是它的长度,比如s[0]。),可以给我们提供很多便利,比如高精度运算,每一位都可以转换成一个数,存储在一个数组中。