|
在c語言中,先定義了類型,后有的標(biāo)識(shí)符,這些標(biāo)識(shí)符組成的表達(dá)式,用于產(chǎn)生基本類型的變量 ?例如 int *a; ?這條語句表示*a表達(dá)式產(chǎn)生的結(jié)果類型int ,知道*操作符的作用是間接訪問操作,就可以知道a是指向int 的指針。 ?c語言其實(shí)是很自由的語言。 ?知道編譯機(jī)制,編譯器編譯時(shí)會(huì)將代碼中的空格去除掉,鏈接最后轉(zhuǎn)成二進(jìn)制機(jī)器碼,讓機(jī)器可以識(shí)別 ?所以有下面這種定義形式 ?int* a; ?可以看到這樣比上面那個(gè)更清晰更容易看懂,a被聲明為類型為int*類型的指針。但這并不是個(gè)好技巧。你可以看看下面這個(gè)定義。 ?int* a, b, c; ?你可以看到認(rèn)為定義了a,b,c都是int*類型的指針。但是這樣理解是錯(cuò)誤的 ?這個(gè)定義只僅僅定義了a是int*類型的指針變量。很意外吧 ?正確的定義形式是這樣的 ?int *a, *b, *c; ?這個(gè)才真正定義a,b,c都為int*類型的指針。所以那樣定義就是個(gè)陷阱。以后要多注意 |
|
|