右侧
当前位置:网站首页 > 资讯 > 正文

c语言数组不赋值,c++数组不赋值

作者:admin 发布时间:2024-03-21 00:55 分类:资讯 浏览:9


导读:为什么在C语言中数组无法赋值?1、正确的——这里说的“能”与“不能”是指用C语言的语句操作。C没有提供对数组整体赋值的语句,所以肯定是不能对数组进行整体赋值的。2、可以通过结构体...

为什么在C语言中数组无法赋值?

1、正确的——这里说的“能”与“不能”是指用C语言的语句操作。C没有提供对数组整体赋值的语句,所以肯定是不能对数组进行整体赋值的。

2、可以通过结构体之间的直接赋值间接达到数组整体赋值的效果,即:tmark=tmark;//非法,数组不能直接整体赋值。t1=t2;//合法,在此之后,tmark数组将被整体复制到tmark数组。

3、在VB中,数组在内存中的结构分成两部分:一个连续的内存块,一个指向这个内存块开始地址的指针。给数组的元素赋值相当于向内存块中的某个位置写入内容,这是正常的。

4、你第一次赋值就不对,这种赋值方式只能在声明初始化时,不能这样,数组是不能整体赋值的。int a[3]={1,2,3};这样是可以的,而像你那样不对。下面的for循环才是正确的赋值方式。

5、可以,但是输入数据的时候一定也要加上逗号。

c语言中数组为什么不能整体赋值

char s[5]=asdf;这句不是赋值而是初始化;讲的赋值语句是在程序执行中的赋值,就像 int a;int b;b=a; 这是赋值;对于字符而言,要赋值就要采用strcpy(s1,s2)这个函数。

整体是针对字符数组元素的概念,不是针对字符数组的概念,所以,对字符数组进行整体输入输入出是错误的。主要是C语言没有字符串变量这个概念,对字符型数组进行整体的输入输出,相当于字符串变量的赋值,在C中是没有的。

你第一次赋值就不对,这种赋值方式只能在声明初始化时,不能这样,数组是不能整体赋值的。int a[3]={1,2,3};这样是可以的,而像你那样不对。下面的for循环才是正确的赋值方式。

因为C语言在设计时是以效率优先的,因为数组可能很大,整体传递很花时间,所以不允许数组整体赋值,也不能返回数组,也不作为参数传递(数组作参数时实际是将它转化成了指针,这好像不符合值传递)。

因为他不知道你要输入的数有多少个,以及你输入的位置。是连续的。包括二维数组都是连续的。

c语言,当数组某些元素未被赋值时其值为多少?

C语言规定,普通数组没有赋初值,默认的数组元素值是随机数,不是0。如果在定义数组时,数据类型前面加上关键字static,数组变成了静态数组;或者把数组定义在函数的外面,成为全局变量数组,这时数组元素的值自动赋值为0。

这个当然是要输出11了,因为你的*p的值就是a(也就是a[0])的值,是1,1+10当然是11了。

静态全局变量当定义在函数内的全局变量,有static标记时,默认初始化为0值;非静态全局变量没有默认初始值,C语言规定初始化值为随机值,但具体的实现由编译器决定。

在C语言中,“初始化”和“赋值”是两个不同的概念。楼主问题中应该是“初始化”而非“赋值”。int a = 0; 在声明一个变量的时候指定变量的值,这叫做初始化;int a; a = 2; 这叫做赋值。

一维数组元素的初始化默认值与所定义的数组类型有关,不同的数组未初始化的默认值也不同。

标签:


关灯