C語言指標的意義在C語言中什麼是指標?指標是幹什麼用的?,有什麼意義?

2021-03-04 07:45:05 字數 5930 閱讀 2721

1樓:百度使用者

如果使用變數傳遞,因為自定義函式沒有返回值,所以len的值不會改變。

而使用指標,則自定義函式直接操作len,即使沒有返回值,len的值已經改變。

如果使用變數傳遞也可以實現,就是需要返回len的值。

2樓:我不懂

指標就是指變數的位址

3樓:小丟娃娃

mul(arr,i,&len);

你這個函式的實參取的len的位址,所以你定義函式時的形參就該用指標來與之對應,效果就是指向main函式中len變數的位址

如果你把實參和形參都改為變數的值傳遞的話,你的void mul(int arr,int n,int *len)

這個函式中最後一句*len=l; 就不能改變main函式中len的值,達不到你程式的目的

4樓:匿名使用者

void mul(int arr,int n,int *len) 中之所以使用指標*len ,而不是變數len,是因為,若引數用數字,則當mul函式中的變化不會引起main函式中的變化。因為函式是採用值傳遞的規則,是單向的。而使用指標後,就不一樣了,指標是位址的意思,說明是同乙個位址單元裡的數改變了,那結果就改變了。

就像是 int a=2;a=b;b=5;那麼a還是2,b是5.若用指標了得話,則,int a=2;

int *p=&a;*p=5;那麼a也是5,變了呀。

在c語言中什麼是指標?指標是幹什麼用的?,有什麼意義?

5樓:仙

寫簡單的程式的話不用指標也行了吧. 比如這裡a是乙個位址(編譯後), 為了讀寫這個位址單元裡的東西,可以用p,也可以用一般變數a.

對於指標的便利,我現在能想到的,可能是:

函式a呼叫函式b時,把乙個記憶體塊的位址傳遞過去,這樣可以避免按值傳遞時開闢乙個棧空間並逐一拷貝記憶體塊裡的值的開銷(c++裡的拷貝建構函式在做這件事),並且a,b函式操作的都是同乙個記憶體塊裡的東西,如果這就是目的,那麼傳指標就是很有效率的做法(如果不用指標就可能要用乙個全域性的變數了). 用乙個指標(函式指標)存放一系列同型別的函式名(入口位址),方便函式呼叫. void*型別指標可以存放任何型別指標.

讓父類型別指標指向任何子類物件可以實現動態繫結. 寫著寫著似乎指標還挺有用,呵呵.

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

6樓:匿名使用者

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

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

7樓:匿名使用者

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

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

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

8樓:香帥之楓

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

c語言中指標的作用是什麼?

9樓:匿名使用者

指標指向位址,指標的特性就是在位址不變的情況下,可以很方便的修改所指向的內容

最重要的應用有兩個,一是函式引數,二是函式指標函式引數:函式返回值只有乙個,如果想回傳多個引數,則必須使用指標函式指標:典型應用就是**函式(callback)

10樓:杜爺1號

簡單地說指標就是指向變數和物件的位址。

指標的用途非常廣泛,比如如果你想通過函式改變乙個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞乙個位址就行,大大提高了效率。

以上還只是指標的初步應用,隨著你在c語言學習上的逐步深入,你會發現更多的用途的。

11樓:匿名使用者

用來簡單的標示乙個位址引用。

指向變數位址,便於對變數操作。

就像桌面的快捷方式,它指向乙個真實的檔案。

就像給儲存器的某個儲存位址單元起了個名字,操作這個名字就等於操作的這個儲存位址單元,比如,要給某個儲存位址單元賦值,這時候就把值賦給,指向這個儲存位址的名字。也就是說,使用指標表示位址單元比直接用記憶體位址號表示方式,更人性化,操作更靈活。

12樓:匿名使用者

指向位址啊。

比如a是指標

*a 就是指a位址所存的數字。

呼叫其中數字。

13樓:匿名使用者

指標是一種存放另乙個變數的位址的變數。

比如申請乙個整形變數 int a = 128; 再申請乙個指標讓這個指標指向變數a.

int *p;

p = &a; //取a在記憶體中的位址,把a的位址賦給p。這樣p就指向了變數a的位址。

14樓:奧·備侖思

指標,首先從概念上是「變數」。

它存放的是記憶體位址,而不是具體資料。

15樓:天涯海角情緣在

怎麼說指標的作用呢?通俗點講就是當你用上指標的時候,你到目標地的就會有捷徑了,移動性強,可操作性很大,對於資料的刪除、插入、編輯都很方便,換成其他的,則比較麻煩。

16樓:匿名使用者

c語言中指標的作用是什麼?啊這個問題還不好一句回答。這是c本身是低階語言,能夠操動記憶體的特效決定的,早期的時候對計算機說這就是效率。

現在好像不是這樣說了,都說指標很危險,特別是在目前複雜作業系統下。

要是說作用是什麼?是求高效的低階語言特有的特質。

17樓:匿名使用者

指標啊,用來取乙個元素在記憶體中的位址

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

18樓:愛夏的你呀

1、指標的優點

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

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

2、指標的缺點

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

擴充套件資料

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

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

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

19樓:文化廚子

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

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

#include

int main()

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

#include

char endian(void)

int main()

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

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

20樓:51cto學院

記憶體對齊的緣故。

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

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

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

21樓:匿名使用者

說那麼多幹什麼勒..

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

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

請問c語言中 指標是什麼?有什麼作用?請用通俗的語言解釋

22樓:匿名使用者

通俗的說,就是你家的門牌號,

簡單地說指標就是指向變數和物件的位址。

指標的用途非常廣泛,比如如果你想通過函式改變乙個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞乙個位址就行,大大提高了效率。

以上還只是指標的初步應用,隨著你在c語言學習上的逐步深入,你會發現更多的用途的

23樓:笛芭訪

c語言中,指標變數代表的是乙個位址,這個位址可以是變數的,也可以是涵數的,陣列的等等,這樣我們通過指標變數就可以訪問到變數位址中存放的內容,或是呼叫函式等,它非常靈活,具體的好處在程式設計中你才能慢慢體會到的,好好學習吧。

24樓:匿名使用者

在電腦裡定義乙個量時會在記憶體中申請一的位址來存放這個值,

而指標就是乙個存放值的位址的變數求採納

c語言 指標存在的意義 50

25樓:匿名使用者

指標變數裡面就是整型的乙個十六進製制數,用來表示的就是指向某個變數的位址;

指標是c語言中廣泛使用的一種資料型別;

利用指標變數可以表示各種資料結構;

能很方便地使用陣列和字串;

並能象組合語言一樣處理記憶體位址,從而編出精練而高效的程式;

指標極大地豐富了程式語言的功能。

26樓:匿名使用者

這個問題~~~~~~

27樓:

這就好比,你既然活著,你總得知道你是活在地球上的吧,這樣,你就好比變數,地球就是指標。

c語言中指標存在的意義

28樓:匿名使用者

計算機計算暫存器自加1的指令一般耗用乙個時鐘週期,而加法和減法運算需要耗用許多時鐘週期。因此,做變數的自加或自減就要比做加法或減法的效率高很多。

在訪問大資料量的資料時,如果不關心資料距離資料開始的位置,只需要訪問當前資料,或當前資料左右上下位置時(比如做影象資料的逐點或區域處理計算),使用指標指向影象資料,就能利用自加或自減快速訪問陣列中的畫素資料,而不必用類似uimage[24][76]這樣的方式來訪問(這樣的訪問會用到一次乘法和一次加法運算)

在函式呼叫或返回時,如果引數或返回值並不是簡單資料型別的資料時,可以利用指標指向乙個複雜資料的集合體(陣列、結構、類),這樣只傳遞資料型別和起始位址就可以交換複雜資料了,這種方式傳遞位址就是使用的指標型別引數。

關於c語言中的指標問題,關於c語言中的指標問題。

char p heir 這句話包含了2層意思,一是定義乙個指標變數p,即 char p 二是為指標變數p賦初值,即 p heir 實際是將存放字串 heir 的記憶體位址賦給p 因此這句話實際上等價於 char p p heir char p heir 這個表示定義字元指標變數p,並將存放字串 he...

C語言中指標是什麼,C語言中指標的作用是什麼?

指標是c語言的難點,很難被學生接受。本部分主要演示 指標的定義,普通變數的定義,建立關聯,直接賦值,間接賦值。為了簡便,暫時只討論整形。設計 在組合框中選擇操作的型別,在彈出的對話方塊中做進一步的處理。二十個編輯模擬記憶體,十個為整形,十個為指標區.由於 記憶體 的限制,很容易 記憶體不足 二十個靜...

C語言中刪除指標用啥,C語言中指標的作用是什麼?

include 包含的標頭檔案 char p char malloc 1024 在c中使用malloc分配 free p 用來釋放記憶體空間 另外分配記憶體還專可以 屬這樣寫 char p malloc sizeof p 一般用copydelete如下 舉個簡單的例子bai int pint new...