對數組賦值多少合適
① 關於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]='