数组后面中括号什么都不加是定义了动态数组

2021-03-17 19:48:45 字数 1818 阅读 7858

1楼:折柳成萌

假如你定义了 int a[5]=;

数组名a是指针,指向数组的第一个数1,,即*a等于1

a后面的中括号是基址+变址的寻址方式,如a[0]是*(a+0)等于一个数1,那a[3]就是*(a+3)等于第四个数4

数组后边的中括号填还是不填好

2楼:郑州君福财务

数组的中括号不是手动填上的,而是在数组公式填写完的时候ctrl+shift+enter这三个键自动加上去的。

数组定义中的方括号[]是一个运算符,还是一个其他类型的符号?

3楼:矿工酱

这个最佳答案是错误的。

数组定义中的中括号就是表示它是个数组,属于语法范畴(就跟函数调用里面的逗号,语句后面的分号,还有语句块的大括号一样),不算运算符,不能更改和重载,例如 int a[10]或者int *a = new int[10]等。

但是c和c++语言里中括号还有个用法就是作为一个运算符,是一个叫做“数组下标运算符”的双目运算符,即a[b]。这个默认等价于*(a+b)。但是在你自己定义的类中,这个运算符是可以重载的,使之不等于*(a+b),这个时候这个运算符的意义就不是“数组下标”了,而是你自己定义的了,甚至可以像括号那样用。

4楼:精忠报国何须悔

选 d 一维数组的定义方式为: 类型说明符 数组名 [常量表达式] 注; 常量表达式中可以包括常量和符号常量,不能是变量。也就是说,c不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。

5楼:匿名用户

http://user.qzone.**.***/1749748955/blog/1451186852

c语言数组名后面那个中括号[ ]里可不可以是表达式?为什么

6楼:匿名用户

我觉得数组的【】括号中的一定是常量,否则在编译器无法设置内存空间。所以可以是表达式,但是应该是常量表达式,不能是变量。

7楼:淦海瑶

可以,但是要注意一点,

这个表达式返回值一定要是正整数或者零

其他的都是错误的

给你举个例子吧

如求一个数字字符串中数字出现的频率

char a[100];

int b[10]=;//计数数字出现的次数int i=0;

gets(a); //输入数字,否则有可能出错,因为b的下标超过9while(a[i])

b[a[i++]-'0']++; //这里a和b的下标都是表达式

a的下标是i++,是正整数或零

b的下标是a[i++]-'0'是a[i]中的数字的ascii码值减去0的ascii码值,是0~9

8楼:1個魜_等待

数组必须先分配内存空间才能使用,所以初始化的时候不能是表达式,但是却可以这样用:

int a[11]; for(int i = 10; i>5; i--) a[i-5] = 1;

9楼:周碧娇是我老婆

“”中间必须是整形常量或整形常量表达式。

数组定义时,必须指定数组的大小,数组大小必须是整形常量表达式,不能是变量或者变量表达式

错误例子:int n=10; int a[n]; int b[10.3]; int c[n+10];

10楼:匿名用户

可以是返回值为正整数的表达式

字符窜数组后面有两个中括号是什么意思

1楼 山水阿锐 您好,是这样的 1 string表示字符串类型,用string申明一个变量,这个变量就可以引用string类型的数据。 2 string表示你申请了一组类似步骤1中申请的变量。 3 string表示你申请了一组类似步骤2中申请的变量。 括号都占两个字符 5 2楼 你在英文状态下输入括...

c语言中定义数组长度与不定义数组长度有什么区别

1楼 c语言是低级的高级语言,不会提示越界,你可以在定义5个长度呃字符数组里面输入7个字符,但是定义长度并不是没用的,编译器会专门开辟5个字符长度留给这个数组,是专用的,因此你输入7个字符后,后两个字符其实是超标领养,用了别人家的资源 可能占用了其他变量的空间 ,并且很容易就没娘要了 容易出错 。如...