c 學習筆記(二) 變數和基本型別

2022-09-18 09:15:20 字數 2149 閱讀 5461

字面值就是常量。十進位製字面值沒有負數,比如-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是...