对数组赋值多少合适
① 关于C语言数组赋值问题
char
s[5]={'1','2'}
相当于对数组初始化,这样的话,数组强两个字符是'1'
'2',其他字符初始化为'\0',这其实是有对s[2]进行赋值的。
而a数组是没有初始化,自然就没对a[1]赋值。
两个题目结果自然就不同了。
② c 数组赋值问题
这是对数组的指定项目进行赋值的一种写法,就是指定数组中第几位,并对其赋值
int days[12] = {31, 28, [4] = 31, 30, 31, [1] = 29, 31}
比如这个,[4] = 31是对下标为4的元素进行赋值,后面的[1] = 29,31是对下标为1的元素进行赋值,而后面的31依次顺序赋值
最后赋值结果为31 29 31 0 31 30 31 0 0 0 0 0
后面的赋值会覆盖前面的,比如[1] = 29会覆盖28
你要知道'A'是什么含义,ascii码对吧,其实是一个数字'A'是65
然后你应该懂了,具体可以看C primer plus第10章,有比较详细的介绍
不懂可以追问 :)
③ 【【c语言 二维数组 初始赋值 最多多少】】
用stl中的动态数组多少行,列都行,前提是你的内存足够大
int d=3,c=18;
vector< vector<double> > Array;
vector< double > line;
for( j = 0; j < d; j++ )
{
Array.push_back( line );//要对每一个vector初始化,否则不能存入元素。
for ( i = 0; i < c; i++ )
{
Array[ j ].push_back( i );
}
}
for( j = 0; j < d; j++ )
{
for( i = 0; i < Array[ j ].size(); i++ )
{
cout << Array[ j ][ i ] << " ";
}
cout<< endl;
}
④ C语言,结构体中的数组怎么赋值,
intmain(void){
structstudentsbao={};
printf("%d,%s ",bao.id,bao.name);//输出是4224528,空(应该是null)
//structstudentsbao={3,"123"};可以。第一种赋值方法
//strcpy(bao.name,"bao");//可以,
//printf("%d,%s ",bao.id,bao.name);
//bao.name="bao";错误“stray'351'inprogram”其他是乱码,
//bao.name[0]='a';
//bao.name[0]='/0';
//printf("%d,%s ",bao.id,bao.name);
/*这样可以,*/
//chararr[10]="baobao";
////bao.name=arr;//error""
//scanf("%s",bao.name);//可以,
//printf("%d,%s ",bao.id,bao.name);
//所以scanf那一类函数都可以。
//还有就是memcpy函数也是可以的
return0;
}
(4)对数组赋值多少合适扩展阅读
C语言结构体数组的直接赋值及数组的长度计算:
#include<stdio.h>
//自定义一个字符串的结构体,包含字符串和字符串长度两个变量
typedefstructStr{
charch[100];
intlength;//char数组(字符串)的长度
}myStr;
//刚开始声明变量时每个变量的字符串长度length都为0
//这里以长度为10的数组为例,数组长度是1000
//对第0个到第9个结构体数组的长度同时赋值为0
myStrmyStr1[10]={
[0...9]={
.length=0,
}
};
intmain(){
inti;
for(i=0;i<10;i++){
printf("%d ",myStr1[i].length);
}
return0;
}
⑤ 数组给数组赋值问题
楼主可能把指针和数组名的作用给混淆了!
我看了楼上的解释,很详细,但恐怕楼主既然提出了这样的问题,估计也看不懂上面的解释,或者费解!
我给你稍微解释下:首先数组名a和b的值是地址,各表示a[3],b[]这两个数组的首地址,而且数组名是一个符号常量,而非变量。因此不能做任何赋值之类的运算。但你程序里的式子a=b,即把b的地址赋予给一个符号常量,而常量是不能在赋值运算符号的左边,既它的值不能被改变,不能被赋值的。
综上有,a的值任然没有变,任然是数组a[3]的首地址,所以数出时没有任何内容,而且编译时也不会通过,会提醒你=号的左边有错误!
我也理解了楼主的意思,是想通过把b数组的首地址赋予给a然后通过%s数出a数组。这样输出的就是b数组。只是你这里用错了对象,把符号常量a当做变量来赋值了。但你可以把b的首地址赋予给一个指针变量,使指针指向b的首地址,然后输出用%s数出指针就可以数出b了。具体如下:
#include <stdio.h>
void main()
{
char a[3],b[]={"China"};
char *p;
p=b;
printf("%s",p);
}
这里楼主就要注意p和a的区别,a是存放地址的常量,不能被赋值。p是存放地址的变量,可以被赋值。
另外,要实现楼主上面的目的,把数组b的内容放到数组a中,然后输出数组a的到数组b的内容,可以简单的用一个strcpy函数就行了。
程序如下:
#include <string.h>
#include <stdio.h>
void main()
{
char a[6],b[]={"China"};
strcpy(a,b);
printf("%s\n",a);
}
这里还是必须注意,strcpy中前一个数组的长度要大于或则等于后面数组的长度,这样在实现赋值的时候能够确保前面的数组容纳下后面数组的所有元素,所以这里把a数组的长度改为6。
希望能帮到楼主!
⑥ C语言 数组赋值的问题
您好,
你之前初始化是的test中[0][1][2][3]成为1、2、3、4;
系统自动令test[4]='