CC常量大全

2021-09-01 05:50:09 字數 2387 閱讀 3942

//一、字元常量

'r''5'

' ''\n'

'\0'

'\777'  //1~3位八進位制

'\xef'  //1~2位十六進製制

//二、整型常量

10//三、浮點型常量

3.14

//四、列舉常量

enum weekday

;//五、常量與指標

//1,指標常量

int a = 1;

int *const b = &a; 

//const 修飾 b, b-->唯讀,但*b未被修飾故可讀可寫.

//const位於*右側,表明物件是常量,內容為指標(位址)

//宣告常量b,它的值是變數a的位址

*b = 20;

printf("b = %p, *b = %d\n", b, *b);

//2,常量指標

int c = 39;

const int *d = &c; 

// const 修飾的是*d,*d-->唯讀,但d未被修飾故可讀可寫

d = b;

printf("d = %p, *d = %d\n", d, *d);

//int strcmp(const char *str1, const char *str2);

//因為函式的引數宣告用了常量指標的形式,就保證了在函式內部,

//那個常量不被更改。

//也就是說,對str1和str2的內容更改的操作在函式內部是不被允許的

//但是可以對他們的位址進行操作(間接的對他們進行(整體的操作))

//3,指標常量的指標常量

const int * const e = &a;  //此時e或者*e均為常量,e,*e-->唯讀

//六、常量與字串(字元陣列)

char* ptr1 = "abc";//"abc" 是常量,這樣的寫法不允許!!!不嚴謹!!!

//因為定義的是乙個普通指標,並沒有定義空間來存放"abc",所以編譯器得幫我們找地方來放"abc",顯然,把這裡的"abc"當成常量並把它放到程式的常量區是編譯器最合適的選擇,所以儘管ptr的型別不是const char*,並且ptr[0] = 'x';也能編譯通過,!!!但是執行ptr[0] = 'x';就會發生執行時異常,因為這個語句試圖去修改程式常量區中的東西。這種寫法原來在c++標準中是不允許的,但是因為這種寫法在c中實在是太多了,為了相容c,不允許也得允許。雖然允許,但是建議的寫法應該是

const char* ptr = "abc";

//這樣如果後面寫ptr[0] = 'x'的話編譯器就不會讓它編譯通過,也就避免了上面說的執行時異常。如果char* ptr = "abc";寫在函式體內,那麼雖然這裡的"abc\0"被放在常量區中,但是ptr本身只是乙個普通的指標變數,所以ptr是被放在棧上的, 只不過是它所指向的東西被放在常量區罷了,字串常量的型別可以理解為相應字元常量陣列的型別,

"abcdef"的型別就可以看成是const char[7]""

char *str = "this is a special string";

char string[ ]="this is a string";

//字元指標str與字元陣列string的區別是:

//str是變數,可改變str使它指向不同的字串,但不能改變str所指的字串常量

//string是乙個陣列,可以改變陣列中儲存的內容。

//字串本身就可以代表他們的位址

//七、字元陣列與函式陣列傳參

char str = "abcdef";  //就有sizeof(str) == 7,因為str的型別是char[7]

sizeof("abcdef") == 7;  //"abcdef"的型別是const char[7]

char *ptr = "abcdef";  //就有sizeof(ptr) == 4,因為ptr的型別是char*。

char str2[10] = "abcdef";  //就有sizeof(str2) == 10,str2的型別是char[10]

void func(char sa[100],int ia[20],char *p)

// 就有sizeof(sa) == sizeof(ia) == sizeof(p) == 4;

// 因為sa的型別是char*,ia的型別是int*,p的型別是char*

nginx 內建變數大全

http核心模組支援一些內建變數,變數名與apache裡的對應。比如 http user agent,http cookie等表示http請求資訊的變數。更多變數 args,請求中的引數 content length,http請求資訊裡的 content length content type,請求...

nginx 內建變數大全

http核心模組支援一些內建變數,變數名與apache裡的對應。比如 http user agent,http cookie等表示http請求資訊的變數。更多變數 args,請求中的引數 content length,http請求資訊裡的 content length content type,請求...

nginx 內建變數大全

http核心模組支援一些內建變數,變數名與apache裡的對應。比如 ht tpus erag ent,http cookie等表示http請求資訊的變數。更多變數 args,請求中的引數 content length,http請求資訊裡的 content length content type,請...