字面值就是常量。十進位製字面值沒有負數,比如-42,他的含義是對42取負值
十進位製字面值型別:int, long, long long(最小的那個)
八進位制和十六進製制:int, unsigned int, long, unsigned long, long long, unsigned long long
字首
含義型別
uunicode 16字元
char16_t
uunicode 8字元
char8_t
l寬字元
wchar_t
u8utf-8(僅用於字串常量)
char
字尾自小匹配型別整型-
u or u
unsigned
l or l
long
ll or ll
long long
浮點型-
f or f
float
l or l
long double
string s5 = "world"
string s6 = "hello" + "," + s5; // 錯誤,不能把字面值直接相加
string可以和字面值相加返回string,而字面值不可以。在c++裡,字面值不等於string
單引號表示單獨的字元,雙引號表示字串型字面值
區別:字串型的字面值,後面會加個'\0'的空字元
tips:賦值的含義是吧物件的當前值擦除,而以乙個新值來替代
int res = 42
int main()
引用沒有建立乙個新的變數,而是給被引用的物件換個名字
void print(int (&arr)[3]) {};
int i = 0, j[2] = ;
int k[3] = ;
print(j); //錯誤,長度不同
print(k); //正確
指標存放的是某個物件的位址,&代表取位址符
int *p = &val
頂層const:表示指標本身是個常量
底層const:表示指標所指的物件是乙個常量
一種特殊的指標,可用於存放任意物件的位址,但是相對的,不能直接操作指向的物件。
簡單來說,只能對記憶體空間的值修改,而不能改變指向的值
可以用作函式的輸入和輸出、用來和其他指標比較。
注意點:unique_ptr的release操作不會釋放所指的物件,而是放棄對指標的控制權,返回指標。unique支援管理動態陣列,但是shared不支援:
unique_ptru;
u[i]; // 返回u擁有的陣列中位置i處的物件
int (*fp)(int i, int j) = add;
functionpp = fp;
auto it = back_inserter(c, iter);
*it = val;
/*等價於
it = c.insert(it, val);
++it;
*/
ostream_iteratorout_iter(cout, " ");
for(auto e : vec)
*out_iter++ = e;
cout << endl;
向後移動而不是向前,除了forward_list都有
不是拷貝,而是移動
auto first = alloc.allocate(100000);
uninitialized_copy(
make_move_iterator(begin()),
make_move_iterator(end()),
first
)
cstddef中的型別,用來表示陣列大小
cstddef中的型別,用來表示指標的距離
Python學習筆記之二 變數以及基本型別
ok 既然大家都會使用python的 hello world 那python就相當於會用了嘛,各回各家吧。好吧,其實那只是乙個開始而已。一 本次會學習python的基本概念 1 在學習一門語言時不可避免的會對一些 數值 進行操作比如來個 1 1 2,或則 1 2 3等。2 獲取想要儲存某個 字元 或...
萬劍歸宗 二 變數和基本型別
1.基本內建型別 包括整型,浮點型等等等等,要注意的是他們各自所佔位元組長度,以及不同機型對相同操作的不同處理。簡單的如整型賦值的截斷處理,無符號和帶符號的整型區別等。在c 中,short 16bit,int 32bit,long 32或64bit 在c 中,short 32bit,int 32bi...
C 學習筆記1 變數和基本型別
考試周和化工廠設計結束了,總算可以拿起書學習了。1,如果在數字前加入字首0,則以八進位制計算。加入字首0x則以十六進製制計算。所以如果你寫int i 08或者int i 09 是會報錯的。首先使用格式如下 int i 0 i是乙個變數 int j i j是乙個引用,指向乙個物件 int k i k是...