牛客c 刷題總結1

2021-09-30 18:53:04 字數 921 閱讀 5874

引用只是乙個別名,是已有變數的別名,而void型別是空型別,是沒有分配記憶體的。所以引用不能是void型別。

int const * p , const int * p 以及 int * const p 的區別,前兩個意思是一樣的表示*p的內容不能修改,最後那個指的指標p是個常變數,不能修改它的值。個人理解,const在 *p前表示 *p不能被修改即該位址的值不能被修改,const在p前表示,p這個變數不能被修改

而p存放的為位址,所以位址不能被修改,即指標變數的值不能被修改

不能在初始化時用連等,如double a=b=3.0,b會被認為沒有宣告

宣告指標不呼叫建構函式

訪問a[i][j]: * (a+i)[j],錯誤的原因是(a+i)結束後下一步運算是(a+i)[j],而不是*(a+i),正確寫法是(*(a+i))[j]

陣列指標和指標陣列

int(*p)[10]; 是陣列指標 sizeof( p)=4int(*n)[10]; 是陣列指標 sizeof§=4

()優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨過n個整型資料的長度。

int * p[10]; 是指標陣列 sizeof( p)=40

優先順序高,先與p結合成為乙個陣列,再由int*說明這是乙個整型指標陣列,它有n個指標型別的陣列元素。這裡執行p+1時,則p指向下乙個陣列元素,這樣賦值是錯誤的:p=a;因為p是個不可知的表示(應為陣列首位址),只存在p[0]、p[1]、p[2]…p[n-1],而且它們分別是指標變數可以用來存放變數位址。但可以這樣 p=a; 這裡p表示指標陣列第乙個元素的值,a的首位址的值。

結構體位域

virtual public

在繼承中派生類的物件呼叫建構函式的順序,應該是先呼叫基類的建構函式,然後是成員中的物件對應類的建構函式,最後是派生類自己的建構函式

牛客網C 刷題

今天刷了些c 的題,就其中物件導向分享一下我的感悟。首先區分一下物件導向和面向過程 物件導向是首先抽象出各種物件 各種類 把資料和方法都封裝在物件中 類 然後各個物件之間發生相互作用。面向過程是將問題分解成若干步驟 動作 每個步驟 動作 用乙個函式來實現,在使用的時候,將資料傳遞給這些函式。stl有...

牛客網刷題總結(一)

1.出棧順序 已知某乙個字母序列,把序列中的字母按出現順序壓入乙個棧,在入棧的任意過程中,允許棧中的字母出棧,求所有可能的出棧順序 演算法 1.首先我們對輸入的字母序列進行字元的全排列 通過遞迴 2.然後在得到每一種排列的時候對其進行檢驗,判斷是否為輸入字母序列的彈出序列。2.字串解析 以下函式解析...

10 17牛客刷題

1計算機網路是一門綜合技術,其主要技術是 正確答案 b 你的答案 b 正確 a 計算機技術與多 技術 b 計算機技術與通訊技術 c 電子技術與通訊技術 d 數字技術與模擬技術 2網路中各個節點相互連線的形式,叫做網路的 正確答案 a 你的答案 c 錯誤 a 拓撲結構 b 協議 c 分層結構 d 分組...