
正文
c语言数组能赋值吗,c语言数组赋值方法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言能直接用一个数组名对数组进行赋值吗
C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。
数组是不能被直接赋值,但是数组可以在声明的同时进行初始化。可以用puts(stu[1].name);进行输出。
可以,但是输入数据的时候一定也要加上逗号。
intmain(void){ structstudentsbao={};printf(%d,%s\n,bao.id,bao.name);//输出是4224528,空(应该是null)//structstudentsbao={3,123};可以。
相关问答
Q1: C语言中结构体中的数组,不能直接赋值吗
//structstudentsbao={3,123};可以。
因为数组名就是数组第一个元素的指针常量,是一个常量左值。可以赋值的必须是非常量左值,常量左值和右值是不可以被赋值的。 以上是我个人的理解,有疑问继续追问。
数组是不能被直接赋值,但是数组可以在声明的同时进行初始化。可以用puts(stu[1].name);进行输出。
Q2: 为什么在C语言中数组无法赋值?
因为数组名就是数组第一个元素的指针常量,是一个常量左值。可以赋值的必须是非常量左值,常量左值和右值是不可以被赋值的。以上是我个人的理解,有疑问继续追问。
C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。
因为是这样:比如int a[4]={1,2,3,4};那么系统就会分分配一块内存来存这个数组,而这块内存的地址就是a,a是一个常量,常量不能被赋值。赋值操作只有变量才行。
C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。
正确。数组是多个元素的集合,而数组名是记录数组首地址的指针常量,赋值时C语言编译器会认为是要修改数组名记录地址值,这是不允许的。
Q3: C语言能直接用一个数组名对数组进行赋值吗?
C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。
直接将字符数组的数组名赋值给另一个字符数组即可。
数组是不能被直接赋值,但是数组可以在声明的同时进行初始化。可以用puts(stu[1].name);进行输出。
可以,但是输入数据的时候一定也要加上逗号。
Q4: C语言数组名可以赋值吗?
不可以,在int a[];时已经为数组在内存中开辟了空间,就是数组a和b的地址已经定下了,在C中,数组一旦在内存中被创建是是固定不变的,直到被取消,a=b,把b的地址给a是不行的。
数组名是指针常量,不能进行赋值,可以在表达式中作为参数参与加减。比如 char s[10],s表示一个指向数组首地址的指针常量,printf(%c,*(s+1));可以打印s+1地址的值。
数组名只是一个标号,对应一个地址,在程序中使用数组就是要替换成这个起始地址,因此作为标号本身是不可以修改的,也不是一个变量。
可以的,数组名就是数组第一个元素的指针,所以可以赋值给相同类型的指针变量,此时,数组名和这个指针都指向这个数组的开头。
可以,但是输入数据的时候一定也要加上逗号。
不能。因为变量指针可以递增,而数组不能递增,数组可以看成一个指针常量。
关于c语言数组能赋值吗和c语言数组赋值方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







