這樣給結構體賦值不對嘛?vs2019裡顯示error C2369book重定義不同的下標

時間 2022-03-08 15:05:08

1樓:匿名使用者

book已經定義為陣列了,不能再用這種宣告和定義合體的方式來給某個陣列成員來初始化了。

要逐個結構成員賦值。

book[1].num=1;strcpy(book[1].bookname,"我的書");這樣

2樓:匿名使用者

struct book book[2]=;你這句意思是定義乙個book的二維陣列,而你之定義了乙個首元素,所以會提示錯誤,而且你之前已經有book定義的陣列了,所以會有重名的問題,

3樓:

改為:struct book book[3] = ;;;};

4樓:

佔樓,等最佳答案。

陣列是從0開始,不是從1開始的。

5樓:匿名使用者

struct book

;struct book book[100]; //這才是定義陣列的方式

void main()

;struct book book[2]=;

struct book book[3]=;

}//這三行是定義了三個陣列,並且陣列的名字是一樣的,都是book,還有也不能這樣給結構體陣列賦值,要麼是定義陣列時直接賦值。要麼是在主函式中通過迴圈給陣列賦值

定義陣列時賦值

struct book book[100]=,,{3,"計算機網路原理","王五","計算機學院出版社","20120624",37.56}

};執行部分賦值//給結構體變數中的成員逐個賦值for(i=0;i<3;i++)

c語言定義結構體並賦值後,怎樣把整個結構體傳遞給子函式?

6樓:匿名使用者

typedef struct

stru;

void fun(stru *s)

int main

fread函式讀取資料不正確,賦值給結構體時資料賦值位置不對,怎麼破?

7樓:卯朗林華皓

fread是讀取2進製檔案的,不要直接使用它讀取文字檔案,因為需要轉換。

最好使用,fscanf。

如果需要提高效率,可以使用fread+sscanf或者fread+atoi

結構體變數的賦值,結構體變數只能在定義時進行整體賦值嗎?不能先定義a,然後給a賦值嗎?為什麼?

8樓:匿名使用者

main()

;struct student a;

a=;}

上面的方法不行,下面的就可以struct student a=;

}

另外結構體賦值要在函式內賦值。函式外賦值編譯階段無法識別自定義的資料型別導致無法賦值。

9樓:匿名使用者

定義時並不是整體賦值, 而是初始化, 是在編譯時完成的, 不是在程式執行時。

執行時 a=; 這樣的語句是不合法的。

10樓:張機

當然不行。 因為在c中,沒有這樣的賦值方法啊。

定義的時候,是編譯器把初始化的值寫好的。

而後面的執行中賦的值 。

就如定義 char aa = "wei zhiliang";可以,而aa = "wei zhiliang"; 是不行的。

只能是 strcpy(aa,"wei zhiliang");

如果是在c++中,可以寫一操作符過載函式。

11樓:齋傲雲

struct student

;void main()

c語言結構體中的陣列怎麼賦值,C語言,結構體中的陣列怎麼賦值,?

念憶 intmain void printf d,s n bao.id,bao.name 輸出是4224528,空 應該是null structstudentsbao 可以。第一種賦值方法 strcpy bao.name,bao 可以,printf d,s n bao.id,bao.name bao...

c語言結構體陣列成員怎麼賦值,C語言結構體陣列成員怎麼賦值?

會飛的小兔子 intmain void printf d,s n bao.id,bao.name 輸出是4224528,空 應該是null structstudentsbao 可以。第一種賦值方法 strcpy bao.name,bao 可以,printf d,s n bao.id,bao.name...

C語言請問這樣做有錯嗎?給迴圈陣列賦值設臨界點

1全部就是for迴圈沒學會吧。那就講一下for迴圈和陣列應用。就拿你的這個程式舉例子好了,定義了乙個整型陣列a 3 然後看這段 for i 0 i 3 i for迴圈的括號裡面有三個東西,for 賦初值 迴圈條件 步長 賦初值就是給迴圈變數 相當於乙個計數器 賦初值,當然也可以初始化其他的變數。第乙...