亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

C語言

C語言聲明學(xué)習(xí)之初級(jí)篇

時(shí)間:2025-05-29 20:57:46 C語言 我要投稿
  • 相關(guān)推薦

C語言聲明學(xué)習(xí)之初級(jí)篇

  C語言為我們定義了四種基本數(shù)據(jù)類型:整型,浮點(diǎn)型,指針以及聚合類型(數(shù)組和結(jié)構(gòu)體等),在此基礎(chǔ)上,我們就可以聲明變量。我們平時(shí)經(jīng)常說定義一個(gè)某種類型的變量,其實(shí)這樣說不確切,應(yīng)該說是聲明變量。

C語言聲明學(xué)習(xí)之初級(jí)篇

  變量聲明的基本形式是:

  說明符(一個(gè)或多個(gè)) 聲明表達(dá)式列表

  比如說:int a, b, c, d;

  C語言中對(duì)指針的聲明比較有代表性,我們來看一下:

  比如聲明一個(gè)指向int型的指針a:int *a;

  這個(gè)語句表示表達(dá)式*a產(chǎn)生的結(jié)果類型是int,而我們又知道*操作符執(zhí)行的是間接訪問操作,所以可以推斷a肯定是一個(gè)指向int的指針。

  C語言在本質(zhì)上是一種自由形式的語言,它給了程序員很大的空間,我們同樣可以這樣寫:int* a,這個(gè)聲明與int *a時(shí)一個(gè)意思,而且似乎更為清楚,a被聲明為類型為int*的指針(實(shí)則不然),這會(huì)誘導(dǎo)我們這樣聲明三個(gè)指向int型的指針:

  int* a, b, c;

  也許你會(huì)很自然的以為這條語句把三個(gè)變量a、b、c都聲明為指向整型的指針,但是事實(shí)上我們被它的形式愚弄了,星號(hào)實(shí)際上是表達(dá)式*a的一部分,只對(duì)這個(gè)標(biāo)識(shí)符有用,a是一個(gè)指針,但是b和c都只是普通的整型而已,要聲明三指針,這樣寫是可以的:

  int *a, *b, *c;

  從這個(gè)簡(jiǎn)單的例子我們可以看出C語言的聲明規(guī)則多么具有迷惑性,呵呵,這也是C語言飽受批*的地方之一,但這決定與語言本身的設(shè)計(jì)哲學(xué),我們無法改變,要想用好C語言,我們必須掌握它的語法規(guī)則。

  我們?cè)倏匆粋(gè)例子:

  int fun();

  我們都知道它把f聲明為一個(gè)函數(shù),它的返回值是一個(gè)整數(shù)。

  如果這樣寫:

  int *fun();

  要想推斷出它的含義,我們必須知道*fun()是如何求值的。首先執(zhí)行的是函數(shù)調(diào)用操作符(),因?yàn)樗膬?yōu)先級(jí)高于間接訪問操作符*,所以fun是一個(gè)函數(shù),它的返回值類型是一個(gè)指向整型的指針。

  再看一個(gè)更為有趣的聲明:

  int (*fun)();

  這個(gè)聲明有兩對(duì)括號(hào),每對(duì)括號(hào)的含義不同。第二對(duì)括號(hào)是函數(shù)調(diào)用操作符,但是第一對(duì)只起到聚組的作用。它導(dǎo)致間接訪問在函數(shù)調(diào)用之前進(jìn)行,使fun是一個(gè)函數(shù)指針,它所指向的函數(shù)返回一個(gè)整型值。

  那么現(xiàn)在這個(gè)聲明應(yīng)該很容易分析出來了

  int *(*fun)();

  fun還是一個(gè)函數(shù)指針,只是所指向的函數(shù)返回的是一個(gè)整型指針。

  先寫到這里,對(duì)C語言的聲明之旅才剛剛開始,下回我們將在中級(jí)篇里討論更有趣的話題!

【C語言聲明學(xué)習(xí)之初級(jí)篇】相關(guān)文章:

C語言聲明學(xué)習(xí)之中級(jí)篇01-11

C語言聲明學(xué)習(xí)之高級(jí)篇12-22

C語言聲明的語法04-26

C語言函數(shù)的聲明以及函數(shù)原型04-20

學(xué)習(xí)C語言的方法05-23

如何學(xué)習(xí)c語言05-07

C語言入門學(xué)習(xí)04-08

怎么學(xué)習(xí)C語言02-23

C語言入門之指針用法06-24