真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言函數(shù)啥時候用指針 C語言函數(shù)指針怎么用

c語言中,函數(shù)的形參什么時候必須是指針

情況1 需要讀入的數(shù)據(jù)是比較大的數(shù)據(jù),使用指針作為參數(shù)可以節(jié)省堆棧

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了邯鄲免費建站歡迎大家使用!

比如 定義1個結構體

typedef struct test

{

char buffer1[10000];

char buffer2[10000];

//后面還有一大堆成員

}test_ts;

void Func1(test_ts t1)

{

//函數(shù)體是對t1成員進行Read處理

}

void Func2(test_ts *t1)

{

//函數(shù)體是對t1成員進行Read處理

}

上面2個函數(shù)功能其實一樣,但函數(shù)Func2參數(shù)只是一個指針占的空間就4 Byte,

Func1參數(shù)是一個結構體,占的空間就看成員多少,但例子的使用的堆棧最少20000Byte了。

情況2 需要對數(shù)據(jù)進行改寫

一般對應的數(shù)據(jù)是數(shù)組或結構體數(shù)據(jù)。

比如memset函數(shù)函數(shù),用于把傳入指針的數(shù)據(jù)寫入對應的數(shù)據(jù)。

具體函數(shù)體內容不貼了,baidu查下吧。

例如還是這個結構體test_ts

test_ts t2;

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

但如果用下面這樣代碼

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

一行搞定

c語言的指針什么時候用

簡單來說就是當你想靈活地訪問地址空間,并在不需要時將其釋放時,就可以考慮用指針。使用指針可以靈活地對地址空間進行操作,但是帶來方便的同時也經(jīng)常出現(xiàn)災難性的軟件問題。使用時要特別注意,任何時間使用指針都要保證指向正確的地址空間,它的內容至少在一定范圍內是“可預測的”。

C語言——什么時候用指針

1.什么時候都可以用指針,因為用指針的效率比用變量高。

2.當一個函數(shù)要返回1個以上的運算結果時,就必須用指針,因為一個函數(shù)只能返回一個值,更多的得用指針“帶回”。

3.操作數(shù)組時,用指針不僅方便得多而且代碼時效很高。

4.操作文件時,不用指針寸步難行。

5.利用指針可以簡化函數(shù)調用的書寫過程,使源代碼易于閱讀。

……不一而論。

c語言什么時候使用數(shù)組,什么時候使用指針?

任何時候都可以使用數(shù)組,使用指針。

定義時,通常只有字符指針,和字符數(shù)組指針直接定義。用來表示字符串或字符串數(shù)組。

其他一般定義數(shù)組。操作時用指針或數(shù)組。

其他指針,多半用在參數(shù)傳遞,數(shù)據(jù)結構內部(不確定需要內存的大小,或者鏈表,二叉樹等鏈式結構)的時候。

還有一種是有些函數(shù)參數(shù)就是指針,這時定義一個指針,來操作傳進來的指針參數(shù)比較好。

指針作為參數(shù),有一下幾種用法,

1)當作數(shù)組用,用來獲取或設置數(shù)組元素。

2)把一個比較長的數(shù)據(jù)結構傳入函數(shù),只需要一個指針就夠了。

3)傳入變量的地址,用來讀取或修改變量的值,主要是為了修改用。

直接定義一個不指向任何對象的指針,并且也從不給他賦值,沒什么意義;

指針要么指向數(shù)組,要么指向變量,要么動態(tài)申請內存。

NULL指針,只是一個方便的指針,表示不指向任何對象。

真正有用的還是指向具體對象的指針。

如果定義了一個指針,使用時要讓他指向一個具體對象,當需要他不指向什么對象的時候,給他賦值為NULL;

PS:

C語言,數(shù)組名只是一個指針常量而已,離開定義可見處,數(shù)組大小的信息就不存在了。

只有定義完全可見的地方,才可以獲得數(shù)組的大小。

數(shù)組作為函數(shù)的參數(shù),和外部引用聲明都不能獲得數(shù)組的大小。

參數(shù)只能傳遞指針,參數(shù)的大小只是指針的大??;

只能看到聲明的地方,獲取數(shù)組大小的努力,只能換來錯誤。

void fun1(int a[10]) //== void fun1(int a[]) ==void fun1(int *a)

{

}

void fun2(int [10][10])// ==void fun2(int a[][10])== void fun2(int (*a)[10])

{

}

C語言到底什么時候用指針什么時候用變量

1. 需要改變實參的時候, 只能用指針.

2. 傳遞大型結構并且"只讀"其元素的時候,

因為大型結構通過值傳遞, 需要拷貝其每個元素, 這樣效率太低.

3. 需要遍歷數(shù)組或頻繁引用其元素時, 這樣效率比使用下標高.

4. 動態(tài)分配空間時, 必須使用指針.

5. 傳遞數(shù)組時, 必須使用指針.

6. 函數(shù)返回指針時, 比如fopen

這是經(jīng)驗和技巧的問題, 多寫點代碼吧:)


文章題目:c語言函數(shù)啥時候用指針 C語言函數(shù)指針怎么用
轉載來于:http://weahome.cn/article/dooscgh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部