
正文
C语言数组不全赋值,c语言数组全部赋值为0
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
c语言中不能给数组全体赋初值啥意思?
因为是这样:比如int a[4]={1,2,3,4};那么系统就会分分配一块内存来存这个数组,而这块内存的地址就是a,a是一个常量,常量不能被赋值。赋值操作只有变量才行。
C 语言原来是为了用高级语言开发 UNIX 操作系统而设计的,所以有很多低级语言(接近机器)的影子,例如位运算,指针操作等。字符串和数组处理则比较弱。添加整体赋值的功能,编译器就要多考虑一点。
而C语言里,数组只是一块具有类型和长度的内存,没有提供如此复杂的功能 从逻辑上讲,可以将数组的赋值的含义变成向数组的元素赋值。
正确。数组是多个元素的集合,而数组名是记录数组首地址的指针常量,赋值时C语言编译器会认为是要修改数组名记录地址值,这是不允许的。
相关问答
Q1: C语言里为什么不能用赋值语句对字符数组进行整体赋值
1、首先C语言里面的数组,一旦定义好了,是无法改变类型和长度的,也不是指针,不能改变指向的内容,所以如下这种写法 int a[10], b[10];a = b;是无法编译的。
2、正确。数组是多个元素的集合,而数组名是记录数组首地址的指针常量,赋值时C语言编译器会认为是要修改数组名记录地址值,这是不允许的。
3、char s[5]=asdf;这句不是赋值而是初始化;讲的赋值语句是在程序执行中的赋值,就像 int a;int b;b=a; 这是赋值;对于字符而言,要赋值就要采用strcpy(s1,s2)这个函数。
4、而赋值语句赋初值是这样: int a 【5】;a【0】=1;a【1】=2,。。
5、因为是这样:比如int a[4]={1,2,3,4};那么系统就会分分配一块内存来存这个数组,而这块内存的地址就是a,a是一个常量,常量不能被赋值。赋值操作只有变量才行。
6、这个是“初始化”。而char s[6]; s=”abcd”; 的写法,编译器虽然可能可以通过,但是如此这般便把s指到了常量区,是不行的。一般认为数组名是一个“常量地址”,不能够变化的,严格的编译器不会通过这个赋值。
Q2: C语言:“除了在定义数组时用初值列表对数组整体赋值以外,无法再对数组...
1、正确的——这里说的“能”与“不能”是指用C语言的语句操作。C没有提供对数组整体赋值的语句,所以肯定是不能对数组进行整体赋值的。
2、C语言除了在定义数组变量时用初值列表对数组整体赋值以外,无法再对数组变量进行整体赋值,这话是不对的。比方说,可以用memset(a,0,sizeof(a));对数组a全部清0。
3、定义赋初值是指 这样:int a【5】={1,2,3,4,5}; 而赋值语句赋初值是这样: int a 【5】;a【0】=1;a【1】=2,。。
4、你第一次赋值就不对,这种赋值方式只能在声明初始化时,不能这样,数组是不能整体赋值的。int a[3]={1,2,3};这样是可以的,而像你那样不对。下面的for循环才是正确的赋值方式。
Q3: c语言中二维数组如何部分赋值?求解,谢谢。
不同语言的二维数组赋值可能略微有不同, C语言中二维数组的赋值如下所示。举例使用int arr[2][3],先定义一个2行3列的二维数组,存储元素为整型。分行给数组赋值,每行都放在一个中括号里面。
首先在电脑上打开c语言编程软件。然后创建项目。然后导入stdio.h和stdlib包。再加入malloc包。然后定义五个参数。再创建其中两个参数的空间。然后用for语句进行循环。再用scanf语句进行接收输入到二维数组。
二维数组赋值的一般形式是:dataType arrayName[length1][length2]。result二维字符数组可以这样赋值,result[0][0]=seq1[0] ;result[1][0]=seq2[0]。
二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。
在电脑上打开c语言编程软件,创建项目,导入stdio和stdlib包,加入malloc包。定义五个参数,创建其中两个参数的空间,用for语句进行循环,再用scanf语句进行接收输入到二维数组即可。
定义二维指针。2 确定数组维数,即行数和列数。3 申请行数个一维指针大小空间,并赋值给二维指针。4 对于每个一维指,申请列数个元素的空间,并赋值给对应的一维指针。5 输入或赋值数据。
Q4: C语言字符数组多余部分赋值
1、在C语言中,字符串的赋值方式有以下几种:字符数组赋值:可以通过定义一个字符数组,并逐个赋值字符来表示字符串。
2、单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值。
3、定义的时候直接用字符串赋值如:char a[10]=hello;注意:不能先定义再给它赋值,如char a[10]; a[10]=hello;这样是错误的。
4、第一种写法,等同于char a[10] = {abc};第一种写法,用一个字符串赋值,实际上保存了4个字节(包含字符串结束符)。第二种写法,只赋值了三个字节。
5、至于越界的问题,C语言是不会检查你下标是否越界的。数组在内存中是一段连续的空间,当你使用下标 0 访问,访问到的是第一个元素,使用 1 访问得到第二个,如此这般。
6、for(;scanf(%c,&a[i])!=EOF;); //for循环读入每个字符,包括空格符,换行符,直到文件末尾。这样整个输入都被读到一个字符串当中。
Q5: c语言数组的赋值
1、C语言中,数组名是一个不可变的指针常量,不能对它进行加、减和赋值运算。在C语言中规定,数组名是代表该数组的首地址且符合标识符书写规定的变量标识符。不能对它进行加、减和赋值运算。
2、引入头文件#include stdafx.h和#include stdio.h。
3、定义二维指针。2 确定数组维数,即行数和列数。3 申请行数个一维指针大小空间,并赋值给二维指针。4 对于每个一维指,申请列数个元素的空间,并赋值给对应的一维指针。5 输入或赋值数据。
4、c语言中将一个数组的值赋给另外一个数组,好像要用指标来赋值 用不用都可以。
C语言数组不全赋值的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言数组全部赋值为0、C语言数组不全赋值的信息别忘了在本站进行查找喔。






