C要確保結構的預設值有效總是可以獲得結構的預設「全零」值

2023-03-11 00:30:23 字數 2141 閱讀 9824

1樓:

這個規範寫得很清楚,是針對struct。struct可以代表所有值型別。對於值型別來說,從概念上它總是有一個「值」的,簡單舉例,你有一個int x,那麼任何時候,x都有一個確定的值,即使未初始化,它也等於零(這是由編譯器替你做了初始化,因為在棧上分配一個int的時候,int所在的地址中不見得一定為0,所以初始化這個工作在底層是無法省略的)。

這個概念的重要性在於,當你對值型別進行==(或equals)比較的時候,兩個未手動初始化的同型別struct應當是相等的。

並且在概念上,這兩個未初始化struct代表的意義應當是「零」。這個概念的重要性在於,當你使用泛型struct的時候,你可以通過default關鍵字來進行初始化(不必,也不可能在編譯時知道泛型是什麼),而default在編譯器的視角下,總是對值型別清0,所以你應當和編譯器的這個規則保持一致:

struct mystruct}

2樓:匿名使用者

我理解的是,所有的類中的屬性都要有預設值,即使用預設值並不影響整個系統的輸出。因為有些人寫類的時候圖方便,並不設定預設值。而是習慣在生成例項的時候輸入屬性,如果不輸入對應的屬性,就會影響整個系統執行。

有程式設計師是這麼操作的,可以少寫**,但是因為只有自己知道,如果其他的程式設計師接手,會很很難接手。

有關c#中類的屬性的預設值

3樓:月冷_星晴

你應該是設定到獲取的物件的值。

比如這樣。

//這個設定預設值

private string _test = "這是測試";

public striing test

set}

這樣在不對這個屬性進行設定的情況下,取道的就是預設值.

4樓:匿名使用者

還少get set方法吧,可以像你那樣直接賦值

c# combox 預設值問題 使用selecteditem設定選擇項,選擇項仍為空,怎麼回事??

5樓:桓笑容

用text值去設定預設選項。

selecteditem沒有效果的。

6樓:

combox.selectedindex = 0;

c#是什麼

7樓:

程式語言,和c++一樣,目前好的c++程式設計師還是比較好就業的。c#還是太新了

8樓:匿名使用者

嗯,從某些意義來說,還是c++好,我覺得不大必要

9樓:匿名使用者

喜歡就學唄。不學習會落伍的。

c#可以設定方法中引數的預設值嗎

10樓:紫影靈風

不能,可以在呼叫的時候給,或者在方法裡使用if判斷,引數若沒有值則給予一個預設值

11樓:iam小戀

可以通過過載的方式設定預設值。

例如messagebox.show()方法(純手打,全小寫),messagebox.show(顯示的值,窗體標題,圖示,按鈕,預設按鈕。。。)

使用messagebox.show(顯示的值)的話顯示的值=顯示的值,窗體標題預設=程式標題,圖示預設=null,按鈕預設為ok,預設按鈕為第一個。

使用messagebox.show(顯示的值,窗體標題)的話顯示的值=顯示的值,窗體標題=窗體標題,圖示預設=null,按鈕預設為ok,預設按鈕為第一個。

c#的結構中到底有沒有預設的無參建構函式?

12樓:微軟專家張海

結構的副本由編譯器自動建立和銷燬,因此不需要使用預設建構函式和解構函式。實際上,編譯器通過為所有欄位賦予預設值(參見預設值表)來實現預設建構函式

13樓:華華兮

是啊,是存在預設的無參建構函式,它會將結構中的欄位賦值為0,你也可以自己寫它的建構函式,但是你自己寫的建構函式一定要帶引數!

14樓:匿名使用者

預設就有一個無參的,裡面沒有**的,你也可以自己寫出來,還可以寫帶有參的,還可以有參無參一起寫出來,無參預設是不顯示的

c語言關於結構體的小問題,C語言關於結構體的小問題

在f函式中s是一個臨時的變數,它隨著f的呼叫而產生,隨著f的結束而消失,你這裡的交換只是在f中臨時調換了p指向的地址,並沒有改變p指向地址的記憶體中的內容,要想改變裡面的內容就要解指標,給具體存放資料的記憶體賦值,例如p 1 s 1 等等.這很簡單啊,陣列下標從0開始,s 1 是第二個 輸出結果當然...

c 中new結構體的問題,c 中new一個結構體的問題。

這是個引數匹配的問題。你的test函式的引數是一個指標陣列,陣列的每個元素是指向stu結構體的指標,而你在呼叫test函式時,你傳進去的引數一個指向結構體陣列的指標,他們的型別不匹配,你只要將test函式的引數中的 去掉即可,即改為void test struct stu s 因為引數型別不匹配。將...

c語言資料結構的基本問題,C語言資料結構的一個基本問題

1 int read 2d array int array,int i,int j,int column 2以上函式的引數第一行的int array是函式引數這個引數說明該函式引數列表一接收的資料型別為int 型的變數 也就是指向int 型指標變數的指標變數 那麼return int array i...