欧美经典成人在观看线视频_嫩草成人影院_国产在线精品一区二区中文_国产欧美日韩综合二区三区

當前位置:首頁 > 前端設(shè)計 > 正文

c語言數(shù)組賦初值(c語言給數(shù)組賦值的方法)

c語言數(shù)組賦初值(c語言給數(shù)組賦值的方法)

大家好,今天來為大家分享c語言數(shù)組賦初值的一些知識點,和c語言給數(shù)組賦值的方法的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可...

大家好,今天來為大家分享c語言數(shù)組賦初值的一些知識點,和c語言給數(shù)組賦值的方法的問題解析,大家要是都明白,那么可以忽略,如果不太清楚的話可以看看本篇文章,相信很大概率可以解決您的問題,接下來我們就一起來看看吧!

如何給結(jié)構(gòu)體數(shù)組賦初值

舉例如下:

chara[10]

;1、定義的時候直接用字符串賦值chara[10]="hello";注意:不能先定義再給它賦值,如chara[10];a[10]="hello";這樣是錯誤的!2、對數(shù)組中字符逐個賦值chara[10]={'h','e','l','l','o'}

;3、利用strcpychara[10];strcpy(a,"hello");易錯情況:

1、chara[10];a[10]="hello";//一個字符怎么能容納一個字符串?況且a[10]也是不存在的!

2、chara[10];a="hello";//這種情況容易出現(xiàn),a雖然是指針,但是它已經(jīng)指向在堆棧中分配的10個字符空間,現(xiàn)在這個情況a又指向數(shù)據(jù)區(qū)中的hello常量,這里的指針a出現(xiàn)混亂,不允許!還有:不能使用關(guān)系運算符“==”來比較兩個字符串,只能用strcmp()函數(shù)來處理。C語言的運算符根本無法操作字符串。在C語言中把字符串當作數(shù)組來處理,因此,對字符串的限制方式和對數(shù)組的一樣,特別是,它們都不能用C語言的運算符進行復制和比較操作。

直接嘗試對字符串進行復制或比較操作會失敗。

例如,假定str1和str2有如下聲明:

charstr1[10],str2[10];利用=運算符來把字符串復制到字符數(shù)組中是不可能的:

str1="abc";/***WRONG***/str2=str1;/***WRONG***/C語言把這些語句解釋為一個指針與另一個指針之間的(非法的)賦值運算。但是,使用=初始化字符數(shù)組是合法的:

charstr1[10]="abc";這是因為在聲明中,=不是賦值運算符。

試圖使用關(guān)系運算符或判等運算符來比較字符串是合法的,但不會產(chǎn)生預期的結(jié)果:

if(str1==str2).../***WRONG***/這條語句把str1和str2作為指針來進行比較,而不是比較兩個數(shù)組的內(nèi)容。

因為str1和str2有不同的地址,所以表達式str1==str2的值一定為0。

C語言中數(shù)組的默認初值問題

普通數(shù)組沒有賦初值,默認的數(shù)組元素值是隨機數(shù),不是0。 如果在定義數(shù)組時,數(shù)據(jù)類型前面加上關(guān)鍵字static,數(shù)組變成了靜態(tài)數(shù)組;或者把數(shù)組定義在函數(shù)的外面,成為全局變量數(shù)組,這時數(shù)組元素的值自動賦值為0。 例子: ?#includeintmain(void) { intm=0; staticintn; ?inta=5,b=6,c=7,d=8; intk=((m=a>b)&&(n=c>d)) printf("k=%d,m=%d,n=%d\n",k,m,n); return0; ?} 輸出結(jié)果為:k=0,m=0,n=0; 當變量用static修飾,但是沒有賦初始值的時候,編譯器會自動給它賦值為0.但是如果不用static只是intn;這樣定義的話,這個值就是未知的,因為編譯器會給這個變量分配一塊4字節(jié)的地址空間,這個地址里面的值就是n的值。

如何給數(shù)組賦一系列初值

給數(shù)組賦初值的方法:

1、直接初始化:intarr[3]={1,2,3};

2、遍歷訪問初始化:for(i=0;i

c語言中可以連續(xù)賦初始值嗎

是的,C語言中可以使用連續(xù)賦值語法來為變量賦初始值。例如:

```c

inta=1,b=2,c=3;

```

這行代碼將同時為變量a、b、c賦值,分別賦值為1、2、3。這種語法可以簡化代碼,提高可讀性。但需要注意的是,連續(xù)賦值語法只適用于同一類型的變量。例如,不能將int類型的變量和char類型的變量一起使用連續(xù)賦值語法。

定義一個3行4列的整型數(shù)組并賦初值,要求編程求出數(shù)組元素中的最大值,以及所在的行號和列號

產(chǎn)生1000以內(nèi)的隨機數(shù)來初始化數(shù)組元素。

最大值初始值用a[0][0],然后依次比較a[j][i],

記錄最大值的下標,存于row,col.

輸出最終的a[row][col].

#include<stdio.h>

#include<time.h>

intmain(){

inta[3][4],v;

inti,j,row=0,col=0;

srand(time(0));

for(j=0;j<3;j++)for(i=0;i<4;i++)a[j][i]=rand()%1000;

printf("array:\n");

for(j=0;j<3;j++){

for(i=0;i<4;i++)printf("%d",a[j][i]);

printf("\n");

}

for(j=0;j<3;j++)for(i=0;i<4;i++){

if(a[j][i]>a[row][col]){row=j;col=i;};

}

printf("\nmaxelemisa[%d][%d]=%d\n",row,col,a[row][col]);

}

C語言關(guān)于數(shù)組賦初值的問題char buff[10]={0}

charbuff[10]={0};是可以把這個數(shù)組的所有元素的賦值成0的。不信你用下面的代碼測試一下。

#include<stdio.h>voidmain(){charbuff[5]={0};inti;for(i=0;i<=4;i++){printf("%d",buff[i]);}}因為有一條規(guī)則:在數(shù)組定義的時候如果同時賦初值,未被賦值的元素都是0

關(guān)于c語言數(shù)組賦初值的內(nèi)容到此結(jié)束,希望對大家有所幫助。