新人初學c不理解c語言中指標究竟有什麼優點?書

2021-03-05 09:21:54 字數 2916 閱讀 2807

1樓:吾狗小黃

跨函式的時候指標的作用非常明顯,即跨函式的時候你不能修改其它函式中的引數的值,但可以通過指標,通過對其地址的操作完成對不同函式之間引數的操作,就好比你刪除桌面上的快捷方式是無法刪除程式的,但你通過快捷方式的地址找到安裝檔案並刪除就可以刪除程式一樣 慢慢來 用多了就理解了

再給你舉個例子吧這個例子是我在網上看到的:

超市門口有一排排的櫃子,要求客戶先把自己的包包放進去,還要投幣一塊,櫃子才能上鎖,鎖匙才能拔出來,鎖匙上有個號碼牌.

當你逛完超市,出來後,怎麼去找那個存著你包包的櫃子並開啟取出來呀?

憑號碼.比如牌子上寫著123,指向123號櫃,123號櫃裡放著你的包.

有點類似:

指標 int c=100;

int *p=&c;

上述兩句的意思為, 櫃子c放著你的包包--"100"這個整數.指標p也是一個櫃子,但這個櫃子裡放的不是你的包包,而是儲存你包包的櫃子號碼牌.

也就是說憑著指標p儲存的地址,可以找到真正存放資料的地方去.

圖示 p->[c]->100 (用->表示被儲存):100被儲存於變數名c的變數中,而變數c的地址被儲存在p中.

使用指標裡,比如上面,要使用100自加1,可以如下

*p++;或者c++;

2樓:匿名使用者

static int32_t m**_actuator_config(struct m**_actuator_ctrl_t *a_ctrl,

void __user *argp)

mutex_unlock(a_ctrl->actuator_mutex);

cdbg("exit\n");

return rc;}

c語言的指標有什麼優缺點?

3樓:愛夏的你呀

1、指標的優點

是標識一塊記憶體。電腦記憶體上的每一個位元組都具有一個編號,稱為地址(可以簡單理解為指標),任何讀寫記憶體的指令都必須攜帶地址資訊,否則電腦不知道讀寫那塊記憶體。

不管程式是用什麼語言寫的,要執行資料和**必須駐留記憶體,cpu要執行指令必須有一個「指標」程式計數器指向記憶體的**塊,如果某個指令要操作記憶體資料,該指令必須攜帶額外的地址資訊。

2、指標的缺點

指標可以操作任何東西,所以指標很靈活、很強大,但也引入了複雜性。

擴充套件資料

1、指標利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。

2、輸出一串字元時,只需要知道它的第一個字元的地址,就可以將這個字串輸出,而第一個字元的地址,可以用指標儲存。所以有n個字串時,就可以用n個指標來儲存。

3、為了儲存一個資料在記憶體中的地址,就需要指標變數。因此指標是程式資料在記憶體中的地址,而指標變數是用來儲存這些地址的變數。

4樓:文化廚子

指標是c語言只所以如此成功的重要原因之一,當然任何事物,往往都是一體兩面的,本質上是一體,看上去是兩面,關鍵是要活學活用,沒比較過分的區別優點、缺點。

c語言主要是針對硬體及系統底層程式設計的,在針對硬體及系統底層程式設計中,對資料的靈活性要求較高,換句話說資料的意義需要經常變動,而資料型別決定了資料的意義,指標一個重要作用是實現對資料型別的轉換,比如要將機器碼為0x3f8ccccd表示成浮點數:

#include

int main()

指標這種能改變資料上下文環境的能力是非常有用的, 比如檢測cpu所支援的儲存順序。

#include

char endian(void)

int main()

如果c語言沒有指標,當然可以想出其它的方法,但是遠沒有指標方便。

指標的缺點,可能對於初學者來說 ,往往不容易理解,而且使用指標程式設計經常會出現一些莫名其妙的錯誤,而且在平時使用c語言進行應用程式開發時,好像指標真的不怎麼有用,這些都不是問題,關鍵是看個人學習c語言的用處,做什麼開發,上什麼專案。

5樓:51cto學院

記憶體對齊的緣故。

p_buf 作為一個指標,它的值是記憶體的某個位元組的地址。

如果想要把 p_buf 強制轉換成一個 unsigned int*型別的指標,

需要滿足一個必要條件,就是 p_buf 的值必須能夠被4整除。(之所以是4,是因為 unsigned int 是要佔4個位元組的)。

6樓:匿名使用者

說那麼多幹什麼勒..

指標我覺得是畫蛇添足..沒有什麼好與不好.

可的情況還是需要用指標,不過覺得不多.

c語言中用指標的好處有哪些?

7樓:匿名使用者

指標非常的好,它把相同的事物歸類,然後把事物做出標記,避免給相同的特點做變數。比如說你和你同學,你們兩個人都有心臟、肝、肺等器官,如果命名心臟1、心臟2這樣比較麻煩,這時如果用上指標,指向你說心臟時說的是你的心臟,指向你同學時說的是你同學的心臟,如果人非常的多,你不用指標,那麼命名心臟1、2、3、4、5.。。。那是非常的多的不必要的變數。

我現在運用plc和wincc連線時有的時候就用指標。節省了通訊時間,省略了很多的變數。

8樓:匿名使用者

c語言指標的作用很多,指標可以直接操作記憶體,理解為直接操作記憶體的優點有哪些。

1、效率更高,這個很容易理解,直接操作記憶體,效率必然更高2、可以寫複雜度更高的資料結構,這個也好理解,程式設計師可以操作記憶體,當然可以寫出靈活、複雜的資料結構

3、編寫出簡潔、緊湊、高效的程式

9樓:香帥之楓

所有的資料都是放在記憶體空間上的,一般不用指標用變數的話,你需要自動分配空間給你的變數來進行運算元據。而一旦使用了指標,你就可以直接在記憶體空間上進行操作,而不需要考慮資料變數的問題。你只要知道指標地址就可以進行操作

C語言指標函式,c語言中指標怎麼使用?

應該是的,還可以用f a i 的形式。去程式設計嗎?我學這些的是一頭霧水。c語言中指標怎麼使用?1 使用場景 使用指標時,必須將它指向一個變數的地址或者為它分配 空間方能使用,如下所示 include include int main int argc,char const argv int b,d...

c語言中用指標的好處有哪些C語言中指標的作用是什麼?

指標非常的好,它把相同的事物歸類,然後把事物做出標記,避免給相同的特點做變數。比如說你和你同學,你們兩個人都有心臟 肝 肺等器官,如果命名心臟1 心臟2這樣比較麻煩,這時如果用上指標,指向你說心臟時說的是你的心臟,指向你同學時說的是你同學的心臟,如果人非常的多,你不用指標,那麼命名心臟1 2 3 4...

C語言中,指標常量和常量指標有什麼意義?能否舉例說明一下

指標常量的意思是指標指向的地址無法被改變 而常量指標意思是指標指向的資料不能被改變,但指標可以移動 c語言中的陣列名字是指標常量還是常量指標呢 陣列名是指標 來常量,指源針不是有常量指標和指標常量和常量常指標嗎?地址是絕對的,score指向受保護,但首地址的內容可以改變,所以陣列首地址應該是指標常量...