c語言語法問題,宣告以及星號的作用

2021-06-10 13:12:56 字數 2907 閱讀 2078

1樓:吉祥二進位制

宣告一個變數或者函式只是將變數名或者函式名識別符號的有關資訊告訴編譯器,使編譯器「認識」該識別符號,而並一定分配記憶體。

在c語言中星號(*)一般有兩種意義,一種是和指標相關,用於宣告或者作為指標的間接運算子,一種是算術運算子,表示乘法。

int main()

2樓:

我理解的 * 在宣告中用來宣告其後跟的變數是一個指標變數,指標變數的值是一個地址

指標變數可能指向一個基本資料型別,也可能是struct,也可能是函式等

比如int* p; //p 指向一個整數的指標變數

int (*f_p)(char) //f_p 函式指標,函式形式是 返回值:int 形參:char

*後的空格可有可無 int* p; 和 int *p是一樣的

我查了下,好像是這樣

_ansi_args_是個巨集的定義

#define _ansi_args_(x) x

所以其實是

int (*glib_init) (glib_interp * interp);

那麼這句宣告意思是

宣告瞭一個函式指標變數,名字叫 glib_init

它指向的函式形式 返回值:int型別 形參:glib_interp型別 形參名字interp

估計glib_interp型別在前邊用typedef定義過

3樓:

_ansi_args_應該是一個巨集,它應該是指明函式傳參方式,請忽視它。

int func ((glib_interp * interp));能看懂嗎?那麼把func改為(*glib_init),那麼就是宣告一個函式指標,它指向的函式和func是同型別的。

星號、括號、識別符號、型別識別符號等都是語法符號,兩個語法符號之間可以任意加空格、tab、回車。

4樓:匿名使用者

這個語句宣告glib_init是個函式指標,這個函式返回int型別,帶個引數glib_interp * interp

至於_ansi_args_應該是個巨集之類的東西,不屬於標準c++的,是你的**庫裡的東西,從字面上看是對引數做的修飾處理,總之這整個語句是函式指標的宣告

空格可以忽略,加多少空格都沒關係

5樓:匿名使用者

glib_init是函式指標,返回int型別的函式指標,函式的傳入引數是glib_interp型別的指標,*前後的空格請無視它吧,沒什麼意義。_ansi_args_是巨集定義 ,好像是表示函式裡面所有的引數都是ascii碼,呵呵,我也不是很清楚。

6樓:茅坑玩蛆

這個看個人習慣,隨便有沒有空格,比如 int a=b;也可以寫成int a = b;

c語言中的星號「*」

7樓:萬能導師

這意味著我要定義一個指標,*未定義時,獲取以下地址的內容,輸入方法。

1.開啟visualc++6.0-file-新建的copy-file-c++原始檔,如下圖所示:

2.輸入預處理命令和主函式,如下圖所示:

3.定義可變度量並確定行數,如下圖所示:

4.確定空格數,如下圖所示:

5.確定每行星號的數量,並將它們包裝起來,如下圖所示:

6.執行如下,以輸出所需的星號:

8樓:888愚公

#define adc_a (*( structadc64_tag *) (0x0000000x3048)

樓主,是這樣子的,首先將 0x000000 加上0x3048,結果用 ( struct

adc64_tag *) 強制轉化成一個指向struct adc_64結構的指標,如果不強制轉化就把這個值當做指標,或者說地址,來訪問的話,編譯器是會報錯的,然後第一個的*號表示訪問這個地址!完畢。

9樓:徐徐隨風倒

樓上回答是正確的,舉個例子:

char * test = null;

我們給test分配堆空間

test = (char *) malloc(5);

這裡的char* 就是把分配的5個大小的空間引用為 char * 型別的

如果我們已經給test指向的空間賦值 比如賦值為「123」

這時我們通過 *test 訪問地址空間儲存的內容

10樓:伊·梵

*的用法

1.指標 ( struct adc64_tag *) (0x000000 + 0x3048)強制型別轉換

2.取指標的值中的 *p 就是取指標p指向的值

3.乘法運算子 3*4

4.字元'*' "3*4"

5.註釋 /* 這裡是註釋 */

11樓:匿名使用者

從第二個星號看起,這個星號表示把地址(0x000000+0x3048)引用為一個結構體指標,

然後到第一個星號, 這個星號表示取指標值

c語言程式裡指標中的星號到底什麼意思?

12樓:豪哥侃球

c語言中* 在定義的時候,只是說明我要定義一個指標了。

* 在非定義的時候,表示取後面那個地址裡面的內容。

c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

C語言語法問題acb啥意思c語言裡ac,b是什麼意思?c語言新手謝了

沒有啥意思,就是簡單的運算。這裡涉及如下運算子,賦值 自增 括號,和逗號運算子。按照運算子的優先順序,先計算括號 也就是討論 c b 然後計算 也就是c和b分別自加。注意 然後談論逗號運算子,沒有意義,就是從左到右。所以最後賦值給a的是b 前面提到一個注意就是,雖然b自加了,但是他的寫法是 b 而不...

c語言中for的用法,C語言語言中FOR的用法

你這些程式肯定是某些二流教科書上,根本就是誤導人。for後面語句 需要迴圈的 不管是一句還是多句都要加!因為加 比不加 讓程式表述得更加清楚!printf d x,y 不會報錯,printf是一個多引數的c函式,編譯的時候,printf函式本身並不知道 引號 中需要多少個引數,它只是按照順序從堆疊上...

c語言的基本語法有哪些,C語言的基本語法有哪些?

先是標準語法 include void main 然後bai是資料du型別 比如 整數型 zhiint 浮點型 float double 然後是迴圈體dao 比專如 if 屬 else 其他的之後可以慢慢了解,如果想學,可以看看譚浩強的 c程式設計 建議搜尋c11標準草案n1570,在annex a...