C語言拾遺

2021-07-07 08:30:56 字數 1365 閱讀 5743

保證某些全域性變數的常量性

// c++, c++中不能通過變數來定義陣列

const

int row = 10;

const

int col = 10;

// c

#define row 10

#define col 10

or
enum 

;

c-style型別轉換

(new-type)expression

static_cast

(expression)

double res = (double)x/y;        // c-style type cast     

double res = static_cast

(x)/y; // c++-style

函式指標的定義

typedef void(*func)();

全域性結構體變數也會被預設進行初始化

typedef

struct tagmemorecord

memo_record;

memo_record m1;

int main(int, char**)

字串的長度

char* str = "hello";

std::cout

<< sizeof(str) << std::endl;

// 4, 乙個指標所佔位元組數

std::cout

<< strlen(str) << std::endl;

// 5, 乙個字串的**有效長度**

char str = "hello";

std::cout

<< sizeof(str) << std::endl;

// 6, "hello"在記憶體的中的表示為`hello\0`,共六個位元組

std::cout

<< strlen(str) << std::endl;

// 5, 字串的有效長度

可到了吧,指標陣列名並不完全一致;

進製

unsigned

int a = 0xf;

std::cout

<< a << std::endl;

// 15

C語言拾遺

main函式引數 c語言規定main函式引數只能有兩個,習慣上這兩個引數寫成argc和argv。c語言還規定argc必須是整形變數,argv必須是指向字串的指標陣列。因此,main函式的函式頭應該寫為 main argc,argv int argc char argv 或者 main int arg...

C語言拾遺

1.操作符與基本型別 賦值運算子的優先順序低於算數運算子。如 x 3 2即x 3 2 優先順序 高於 高於 高於 一元操作符的關聯是從右到左,和 都必須邦定乙個變數或者叫 左值 如 x 注意 x 並不是左值。例如 z x y,相當於 z x y 字元 0 對應ascii的48,a 對應的是65。無論...

C語言拾遺

1 標頭檔案裡不要放全域性變數,被多次包含時,生成.o檔案連線時會衝突 2 函式體裡變數宣告都要放到前面 3 編譯錯誤 error two or more data types in declaration specifiers 一般都是少了分號,檢查你的 4 引用庫函式時,有函式宣告,使用也沒錯,...