hyfm.net
当前位置:首页 >> 数组不能直接赋值 >>

数组不能直接赋值

不可以在定义后这样赋值 aaa[ ][ ]={{0,0,0,0},{0,0,0,0},{0,1,0,0},{0,0,1,0}};也不可以这样 int aaa[ ][ ] = new int[4][4]{{0,0,0,0},{0,0,0,0},{0,1,0,0},{0,0,1,0}}; 但可以这样 int aaa[ ][ ] = new int[][]{{0,0,0,0},{0,0,0,0},{0,1,0,0},{0,0,1,0}}; 或你用循环在定义后,一个一个元素赋值.

因为数组名就是数组第一个元素的指针常量,是一个常量左值.可以赋值的必须是非常量左值,常量左值和右值是不可以被赋值的. 以上是我个人的理解,有疑问继续追问.

数组是不能被直接赋值,但是数组可以在声明的同时进行初始化.可以用puts(stu[1].name);进行输出.

楼主,你好 数组之间是不可以直接赋值的,要直接赋值的话,也只能是利用循环,一个一个的赋值,不过你所要实现的可以通过其他方法来实现,比如取地址运算,把数组a的首地址赋给B数组,不过这要通过指针来实现,还有一种简单点的方法就是拷贝运算,你可以利用c语言库里面已经定义好的函数直接实现你所要实现的功能,实现方法如下:#include <string.h>#include <stdio.h> void main() { char a[100]={"asdsadsa"},b[100]; strcpy(b,a); printf("%s\n",b); } 希望可以帮到你

t2.mark=t1.mark;//mark为结构体中的数组,不能直接赋值?? 是的,数组名是个静态地址值,不能被修改,如果想把数据存储到其中,可以用memcpy()函数进行内存拷贝,或采用循环进行赋值#include <string.h> memcpy( t2.mark, t1.mark, sizeof(t2.mark) );

数组不是基本类型(char int long double之类),编译器不能解析出如何输出变量也不一定可以直接输出的,比如类对象,结构体,都不行(c++需要重载操作符,c语言只能按结构成员挨个输出)

1,a[2] 是数组的第三个元素,第一个是a[0],第二个是a[1],以此类推2,你定义的数组是a[2],也就是总共有两个元素.3,在使用a[2]的时候已经越界了4,a[2]是指数组的第三个元素,而不是指数组a了5,对于单个元素的赋值,只能是类似 a[1] = 5;而不是 a[1] = {1,2};

字符数组不可以直接相互比较.如果是字符或字符数组成员倒是可以相互比较.

二维数组名相当于指针,但是它是一个指向数组类型(也就是整型或者字符型,具体取决于你数组的定义).而二级指针在真正意义上也是一个指针,但它是一个指向指针的指针.在寻址时,拿整型数组举例,直接引用数组名,系统会在数组名指向的地址往后寻址2个字节得到一个整型数字.而引用二级指针时,系统会在指针指向的地址后寻址4个字节得到一个地址,所以两个不能相互赋值.纯手打,求采纳啊.

因为是这样:比如int a[4]={1,2,3,4};那么系统就会分分配一块内存来存这个数组,而这块内存的地址就是a,a是一个常量,常量不能被赋值.赋值操作只有变量才行.比如int a[4]={1,2,3,4},b[4]; 声明之后,a和b都是常量了,b=a这句就是非法的,因为赋值操作=只有变量才行.

网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com