真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

創(chuàng)新互聯(lián)是專業(yè)的鐵西網(wǎng)站建設公司,鐵西接單;提供做網(wǎng)站、網(wǎng)站制作,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行鐵西網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

當然下面列出來的幾點都是C的基礎用法,只不過是這些用法可能平時不會被注意。所以很多東西第一次看到的時候,可能會覺得很怪異,但是細細想想就能很好的理解,也就能更好的清楚C語言的一些特性。但是在具體的編碼過程當中,我還是希望都能老老實實規(guī)規(guī)矩矩的。因為程序員不需要太多棱角,把代碼寫得規(guī)范整潔比耍小聰明要重要得多。下面我列舉了5個例子說明一些問題,如果你是老手看到這些就一笑而過吧,如果是新手,我相信還是會得到一些啟發(fā)的。

1. #和##在宏中的作用,以及帶參宏,參數(shù)的傳遞問題。

2. 結構體中域的偏移位置的計算問題。

3. 結構體的定義以及初始化的用法。

4. 數(shù)組和指針在運算中的等價關系。

5. 數(shù)組在棧中的“變異”。

1. 例子:

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

說明:

A) 預編譯中#是將右邊的參數(shù)轉成一個字符串,##是將左右兩邊的參數(shù)連接成一個字符串。例子是#的用法。

B) 宏當中的參數(shù)其實是以逗號(,)分隔的,其他的字符其實都被看成同一個參數(shù),但是換行和空白其實被處理過了,使參數(shù)在同一個行中。有興趣的自己多做些測試吧,這個用法可以用于要寫包含特殊字符的字符串,免得要寫很多的轉義字符(),但是中間不能有逗號,呵呵~

2. 例子:

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

說明:

A) &((struct _st*)0)->b 的作用是輸出_st結構體中b的偏移。為什么用0當成指針呢,其實很好理解:如果一個_st結構體的地址是0,那么b的地址其實就是b在結構體中的偏移。

B) 其實按理,如果先做((struct _st*)0)->b運算,那么程序肯定異常,所以編譯器還是做了優(yōu)化的,具體編譯器怎么做的,我也沒深究。

3. 例子:

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

說明:

A) 在結構體的初始化時,可以指定域進行初始化,如例子中的.c = 1,順序可以顛倒,這樣做的好處就是可讀性較強,對于大結構的初始化,在閱讀時很方便。缺點就是低版本的編譯器可能不支持。

B) 在結構體的聲明中,可以指定域的大小,如例子中的int a : 1; 說明a只暫用一個bit,充分展示了C對二進制處理反面的親和力。

C) 為什么s.c輸出是-1,而不是1,其實很簡單,因為0xFFFFFFFF表示的是-1,那么一個1bit大小的變量,所有位上面都是1,那么它也表示-1。所以編碼的過程中,有符號和無符號混用其實是很危險的一件事情。

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

4. 例子:

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

說明:

A) 0[a] = 'x';是什么玩意兒?如果寫成a[0]='x';其實你就明白是什么意思了,但是說白了,a[0]和0[a]在編譯器看來是一樣的。因為數(shù)組在做[]運行時,其實是做指針的加法運行:a[0]等價于*(a+0)。所以0[a]也就等價于*(0+a)是完全正確的。

5. 例子:

神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人

說明:

A) 為什么兩行的結果會不一樣?在一般情況下,按我的理解,一個數(shù)組a,&a和&a[0]的值是一樣的。但是當a在形參當中時就不一樣了。例子中,func函數(shù)中的a,其實a變量是在func函數(shù)的棧當中,在func內(nèi)部,a其實已經(jīng)被轉化成char *a,所以&a是表示指針變量a在棧中的地址,而&a[0]表示的是指針指向的內(nèi)存空間的第一個元素的地址,其實也就是調(diào)用者傳入的數(shù)組的第一個元素的地址。不知道我說明白了沒有??!

B) 這個可能比較難理解,關鍵是明白一點,在數(shù)組作為形參時,是被轉換成指針看待的。


網(wǎng)頁題目:神奇的C語言,這才是C語言大牛操作,作為面試題,怕是秒殺眾人
本文網(wǎng)址:http://weahome.cn/article/pjdpcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部