c++ *&符號含義和關係
strlen與sizeof的區別
無符號數和有符號數比較
int
&int
::operator++(
)const
intint
::operator
(int
)
float型別:if((flag >= -0.000001) && (flag <= 0. 000001))
其一般的兩種形式為:
class
boxbox obj1 = obj2;
//(注意此處與賦值的區別)
box obj2
(obj1);// 也行,呼叫複製建構函式
普通建構函式與複製建構函式的區別:
(1)形式上:
box
(int h,
int w,
int len)
;//普通建構函式的宣告,類名(形參表列)
box(box &b)
;//複製建構函式的宣告,類名(類名& 物件名)
(2)在建立物件時,實參型別不同。系統會根據實參的型別決定呼叫普通建構函式或複製建構函式。如:
box box1(12
,15,16
);//實參為整數,呼叫普通建構函式
box box2
(box1)
;//實參是物件名,呼叫複製建構函式
student stud1,stud2;
// 定義兩個同類的物件
stud2 = stud1;
// 將stud1賦給stud2
#include
using
namespace std;
intmain()
【↑**分析】
申明乙個int變數a,賦值為123;
通過&運算可以知道 a的位址為:0019ff3c
申明乙個int指標p,賦值為:0019ff3c, 也就是a的位址;
通過&運算可以知道p的位址為:0019ff38;
即在記憶體0019ff38儲存的資料是0019ff3c;
如果仔細觀察會發現p和a的位址是連續的,間隔為4,這與int是4個位元組的資料型別的事實相符合。
sizeof()是運算子,而不是乙個函式,在編譯時就計算好了,用於計算資料空間的位元組數。
int a[10]
;sizeof
(a);
// = 40 = 4*10
char ch=
'abc'
;sizeof
(ch)
;// = 4 = 3+1 (3)
傳遞給sizeof的一定是個變數,型別或者陣列名,當sizeof的是乙個變數或者型別, 則返回該變數和型別的大小。
對於字串string s;sizeof(string)
和sizeof(s)
因編譯器而不同,但計算的不是字元個數。sizeof("***")
是字元個數+1。想知道字串長度可以用s.size()
或者s.length()
。
void
test
(string s)
intmain()
昨天師弟問個問題,以前沒怎麼注意過:
看下面**了沒~倒數第二行誒,j更大。為啥捏?因為.length()
獲得的是unsigned型別,而 int j 是有符號數,在比較的時候會發生型別轉換。負數存成補碼,它轉化成無符號數去比較的時候是非常大的數。所以會出現j > p.length()
。
int
main()
參考:牛客網、技能樹
C語言相關知識筆記
一 gcnew與new的區別 c cli中使用gcnew關鍵字表示在託管堆上分配記憶體,並且為了和以前的指標區分,用 來替換 就語義上來說他們的區別大致如下 1.gcnew返回的是個控制代碼 handle 而new返回的是實際的記憶體位址.2.gcnew建立的物件由虛擬機器託管,而new建立的物件必...
C 知識點筆記
在全域性域中宣告的變數會自動初始化為0 如果變數是在區域性域中定義的,則系統不會向它提供回初始值0,這些物件被認為是未初始化,其值隨機 有的編譯器可能答會為你初始化為0,但千萬別依賴於這種可能行為,因為它會給你的程式帶來未定義的行為 區域性變數 在乙個函式內部定義的變數就是區域性變數。作用範圍 只侷...
C 初級知識學習筆記2
005 006 1 define巨集定義指令 定義帶引數的巨集被內聯函式取代。如 define max a,b a b a b 已過時 2 第36上講中的28分鐘所講的對多檔案操作方法掌握不太好!3 類宣告檔案 h 類實現檔案 cpp 類的使用檔案 main 所在的.cpp檔案 4 c 多檔案結構實...