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个字符后,后两个字符其实是超标领养,用了别人家的资源 可能占用了其他变量的空间 ,并且很容易就没娘要了 容易出错 。如...