本篇文章给大家谈谈c语言数组整体赋值,以及c语言整数数组对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、C语言里为什么不能用赋值语句对字符数组进行整体赋值
- 2、c语言结构体数组赋值
- 3、c语言中数组为什么不能整体赋值
- 4、c语言中能不能用*给数组内全部元素赋值(比如5*2,把数组中5个元素都赋...
C语言里为什么不能用赋值语句对字符数组进行整体赋值
首先C语言里面的数组,一旦定义好了,是无法改变类型和长度的,也不是指针,不能改变指向的内容,所以如下这种写法 int a[10], b[10];a = b;是无法编译的。
这句不是赋值而是初始化;讲的赋值语句是在程序中的赋值,就像 int a;int b;b=a; 这是赋值;对于字符而言,要赋值就要***用strcpy(s1,s2)这个函数。
正确。数组是多个元素的集合,而数组名是记录数组首地址的指针常量,赋值时C语言编译器会认为是要修改数组名记录地址值,这是不允许的。
因为是这样:比如int a[4]={1,2,3,4};那么系统就会分分配一块内存来存这个数组,而这块内存的地址就是a,a是一个常量,常量不能被赋值。赋值操作只有变量才行。
而赋值语句赋初值是这样: int a 【5】;a【0】=1;a【1】=2,。。
字符串不能整体赋值是因为数组名的实质是指针常量,不能给一个指针常量修改。
c语言结构体数组赋值
1、scanf(%c%c%c,&a,&b,&c);输入为:d e f 则把d赋予a, (空格)赋予b,e赋予c。因为%c 只要求读入一个字符,后面不需要用空格作为两个字符的间隔,因此把 作为下一个字符送给b。
2、用字符常量逐个初始化数组。例如:char a[8]={i,l,o,v,e,y,o,u};把8个字符依次分别赋给c[0]~c[7]这8个元素。
3、数组不能整体赋值,需要逐个元素赋值,但是如果这个数组是一个结构体的成员,可以通过结构体之间的直接赋值间接达到数组整体赋值的效果,即:tmark=tmark;//非法,数组不能直接整体赋值。
4、c语言只有在定义字符数组的时候才能用“=”来初始化变量,其它情况下是不能直接用“=”来为字符数组赋值的,要为字符数组赋值可以用string.h头文件中的strcpy函数来完成。
5、结构体二维数组的赋值可对结构体变量的成员逐个赋值,这种方式和数组相像,数组就是逐个元素逐一赋值,不同于数组,标准C中结构体变量可以整体赋值。
c语言中数组为什么不能整体赋值
1、首先C语言里面的数组,一旦定义好了,是无法改变类型和长度的,也不是指针,不能改变指向的内容,所以如下这种写法 int a[10], b[10];a = b;是无法编译的。
2、正确。数组是多个元素的***,而数组名是记录数组首地址的指针常量,赋值时C语言编译器会认为是要修改数组名记录地址值,这是不允许的。
3、不能给数组整体赋值的意思是:int a[3]={1,2,3};int b[3]={4,5,6};除了初始化这样赋值外,其他像 a = b;a= {4,5,6};这种赋值是不允许的。
4、这里说的“能”与“不能”是指用C语言的语句操作。C没有提供对数组整体赋值的语句,所以肯定是不能对数组进行整体赋值的。
5、char s[5]=asdf;这句不是赋值而是初始化;讲的赋值语句是在程序执行中的赋值,就像 int a;int b;b=a; 这是赋值;对于字符而言,要赋值就要***用strcpy(s1,s2)这个函数。
c语言中能不能用*给数组内全部元素赋值(比如5*2,把数组中5个元素都赋...
2、可以用memset函数在程序开始时初始化数组。这条命令这在已经修改了数组之后又想将它重置为全0特别有用。
3、c语言中将一个数组的值赋给另外一个数组,好像要用指标来赋值 用不用都可以。
c语言数组整体赋值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言整数数组、c语言数组整体赋值的信息别忘了在本站进行查找喔。