用c語言程式設計時,要多用形參還是指標啊

時間 2022-08-24 12:30:08

1樓:匿名使用者

還是有差別的 雖然大多數時候都可以相互用最大的差別就是指標可以改變,可以通過指標改變指向內容的值,但陣列名不行

舉個例子:(分別作為形參)

int num[10], *p;

p = num;//此時p指向陣列的第乙個元素我在主函式裡呼叫兩個函式

1 sum(num);

2 sum(p+2,10);

這就有區別了,因為num陣列首位址它不能變化,但是此時p指向了陣列的第三個元素,而且後面的那個10也是可以改變的,所以說用指標作為形參的時候要帶乙個int n 表示你要處理的數的個數,所以說用指標作為形參的話會給你一種假象,它的確是指向的陣列的某個元素(這要看你的指標移動了,比如說p+2等等,陣列名不能移動),但是它僅僅只是乙個指標,你可以在呼叫的函式裡用sizeof(num),sizeof(p)求它們的值,就知道為什麼總是要加上乙個int n了,因為如果不加的話函式就不知道你要操作的數的個數,另外別忘了傳遞陣列和傳遞一般的int,double等型別是不一樣的,傳遞陣列傳遞的是原陣列,函式的操作就改變了原來的陣列,而傳遞一般的數只是傳遞它的拷貝,對原來的數沒有影響;

還有什麼不懂的繼續交流~~~

另外,虛機團上產品**,超級便宜

2樓:_笑_哭

最好不要用太多的指標,指標是對記憶體進行操作的,如果指標發生錯誤的話很可能會讓程式變得極其和諧,而且帶有過多指標的程式除錯起來不方便,可讀性也不是很高。

3樓:匿名使用者

在以下兩個方面進行考慮

1.需要理解形參 指標區別,然後理解資料如何在堆,棧,記憶體中分配的。

2.形參和指標用法考慮要點是資料大小,大資料建議使用指標或者引用,其他情況沒有明確要求,看具體需要。

4樓:匿名使用者

根據需要而定,不過傳值引數可以完成的任務,傳址引數(指標)都可以完成,反之則不行。

5樓:匿名使用者

這要看具體情況了啊,兩者又不能完全替代,初學的話就找自己最熟悉的用,熟練了再考試效率的問題。

6樓:琴秀曼

形參是指函式的引數,話說和指標有何關係?

c語言程式設計,指標變數。

7樓:it孤鶩

#include

void main()

8樓:悄悄愛

#include

int main()

;int *p=s;

for(i=0;i<=9;i++)

printf("yuansu=",*(p+i));

}這樣輸出陣列的元素。

c語言中,函式的形參什麼時候必須是指標

9樓:壞pi氣灬愛丨兔

當你需要改變傳遞進來的引數的數值時 要傳給指標

10樓:

情況1 需要復讀入的數制據是比較大的資料,使用指標作為引數可以節省堆疊

比如 定義1個結構體

typedef struct test

test_ts;

void func1(test_ts t1)void func2(test_ts *t1)上面2個函式功能其實一樣,但函式func2引數只是乙個指標佔的空間就4 byte,

func1引數是乙個結構體,佔的空間就看成員多少,但例子的使用的堆疊最少20000byte了。

情況2 需要對資料進行改寫

一般對應的資料是陣列或結構體資料。

比如memset函式函式,用於把傳入指標的資料寫入對應的資料。

具體函式體內容不貼了,baidu查下吧。

例如還是這個結構體test_ts

test_ts t2;

如果需要將t2的每個成員初始化成0,可以把每個成員挨個賦值成0。

但如果用下面這樣**

memset(&t2,0,sizeof(t2));

一行搞定

c語言。,。。程式設計。。題目:採用指標形變數作為形參,編寫乙個實現兩個整數交換的函式。在主函式中輸入

11樓:匿名使用者

#include

void swap(int *a,int *b)

void main ()

c語言中為何要用const定義指標來做函式形參

12樓:

為了增強程式的健壯性,防止指標在函式內部被意外修改。

注意:如果指標在函式體內會被修改,請不要宣告為const

13樓:匿名使用者

習慣問題……

用const修飾,那麼在你的函式體裡就不可以對其進行更改,否則報錯!

這是為了使有些指標要想被其它函式呼叫,但又不希望由於失誤被其它函式意外更改而設定的。

如果你本意就是要做指標的更改,那當然就別加const了。

14樓:匿名使用者

本來引數就是分為const 和mutalbe兩種的完全是取決於需求

根據使用者的需求,設計人員應該決定用哪個

不是為什麼的問題

而是使用者需求是啥就乍做.

15樓:

防止在函式中意外修改

在c語言中;用陣列名作為實參,那麼,形參用指標形式和陣列形式都可以嗎?

16樓:匿名使用者

本質上沒區別,你說的題目判斷不太了解,可能是你那個題目的問題。

c語言 編一程式 交換兩個變數的值(用指標做函式引數)

17樓:匿名使用者

#include

void swap(int a,int b)int tmp = a;

a = b;

b = tmp;

printf("a=%d,b=%d\n",a,b);

int main()

int a = 5;

int b = 10;

printf("a=%d,b=%d\n",a,b);

swap(a,b);

printf("a=%d,b=%d\n",a,b);

return 0;

18樓:天雨下凡

#include

void swap(int *p,int *q);

int main(void)

void swap(int *p,int *q)

19樓:匿名使用者

#include

void swap(int *p, int *q)

int main()

c語言程式設計時都是用的指標變數但是error提示引用函式實參與形參型別不相符 10

20樓:房子a房子

你的引數傳遞的不對,max和min已經是指標了,在加上*號就不是指標了。呼叫fun函式的時候直接傳max和min就行,不用帶*號。使用&符號傳遞時雖然滿足了型別的要求,但是實際是對指標再次取位址了,引數內容也不對。

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

21樓:匿名使用者

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

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

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

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

22樓:笛芭訪

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

23樓:匿名使用者

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

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

C語言程式設計問題,用指標,麻煩啦?

我可以進行有嘗help,如果有需求可以絲聊。c語言指標問題 摘要。您好,1.首先分析用什麼語言寫。本題是統計檔案裡的行數,單詞數,字元數的數量。對我而言,與其它語言相比,我比較熟悉c語言,面對這種小程式,我覺得用c語言寫更簡單一點。2.分析需要用到幾個函式。我們要統計行數,單詞數,字元數,所以要用三...

c語言程式設計,編寫函式,根據形參x和y的關係,返回不同的值

聽不清啊 include int cmp int x,int y scanf d d a,b c cmp a,b printf d c d n a,s c 1 b return 0 如下 include include int func int x,int y else if x y else in...

能講一下C語言形參如果是指標變數如何使用嗎

一般來說在函式中如果最終要返回或者設定什麼結果,通常是定義一個變數 與你結果相同資料型別 在程式中進行運算,之後再返回或者再設定,這樣主要是為了方便和好理解,具體到你這題上,因為最終結果是要放在 n裡,它的初始值也是0,所以不要j這種中間變數也是可以的,比如說可以是 void fun int a,i...