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 賦初值 迴圈條件 步長 賦初值就是給迴圈變數 相當於乙個計數器 賦初值,當然也可以初始化其他的變數。第乙...