使用指針的優點有哪些?
為什麼要使用指針?指針的好處在哪裡
指針使用比較靈活,如果說它的好處,根據我平時編程時的感受,大概有這麼幾點:
1.在數據傳遞時,如果數據塊較大(比如說數據緩衝區或比較大的結構),這時就可以使用指針傳遞地址而不是實際數據,即提高傳輸速度,又節省大量內存。
2.數據轉換,利用指針的靈活的類型轉換,可以用來做數據類型轉換,比較常用於通訊緩衝區的填充,比如說,一個數據緩衝區char buf[100],如果其中buf[0,1]為命令號,buf[2,3]為類型,buf[4~7]為某一數值,類型為int,就可以使用如下語句進行賦值:
*(short*)&buf[0]=cmdID;
*(short*)&buf[2]=type;
*(int*)&buf[4]=value;
3.字符串指針,是使用最方便,且常用的。
4.函數指針,形如:#define PMYFUN (void*)(int,int),可以用在大量分支處理的實例當中,如某通訊根據不同的命令號執行不同類型的命令,則可以建立一個函數指針數組,進行散轉。
5.在數據結構中,鏈表、樹、圖等大量的應用都離不開指針。
指針有什麼好處?
指針丹好處,需要和數組比較起來說。具體如下:
1.指針可以隨意申請不連續的數據存儲空間,而數組是連續的,如果數組空間沒有全部佔用,那麼會造成浪費,比如你申請了a[10],缺只有5個數據輸入,那麼會浪費掉5個數組空間。如果是指針就不會浪費,用多少申請多少。
2.指針的計算更快速。比如你需要計算一個16*16的矩陣消元,那麼數據會非常的多和大,你得申請足夠多的數組空間,弄不好還會造成溢出,為什麼?因為採用數組計算時,是數據的交換,而不是內存地址的交換。如果採用指針的話,不會浪費空間,不會溢出,因為指針計算時是交換指向數據存儲空間的地址,而不是交換數據。數據的大小比地址大得多。
所以採用指針好處多多,同樣指針也很危險,如果用不好,還不如用數組。得慢慢體會。謝謝。
C語言指針的作用有哪些?
您好
C語言指針的作用很多,其實說白了就是直接操作內存,或者理解為直接操作內存的優點有弗些
1、效率更高,這個很容易理解,直接操作內存,效率必然更高
2、可以寫複雜度更高的數據結構,這個也好理解,程序員可以操作內存,當然可以寫出靈活、複雜的數據結構
3、編寫出簡潔、緊湊、高效的程序
其實說白了就是操作內存
希望可以幫助到您
c語言中用指針的好處有哪些?
所有的數據都是放在內存空間上的,一般不用指針用變量的話,你需要自動分配空間給你的變量來進行操作數據。而一旦使用了指針,你就可以直接在內存空間上進行操作,而不需要考慮數據變量的問題。你只要知道指針地址就可以進行操作
C語言的指針有什麼優缺點?
個人覺得是很好的一篇文字,說得很清楚:
C是一個結構化語言,如譚老爺子所說:它的重點在於算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制),而對於C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。
所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設計這個概念已經被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那麼是不是C就不重要了,錯!算法是程序設計的基礎,好的設計如果沒有好的算法,一樣不行。而且,“C加上好的設計”也能寫出非常好的東西。
對語言本身而言,C是C++的子集,那麼是什麼樣的一個子集?從上文可以看出, C實現了C++中過程化控制及其它相關功能,而在C++中的C(我稱它為“C+”),相對於原來的C還有所加強,引入了重載、內聯函數、異常處理等等玩藝兒,C++更是拓展了面向對象設計的內容,如類、繼承、虛函數、模板和包容器類等等。
再提高一點,在C++中,數據封裝、類型這些東東已不是什麼新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象接口的設計和繼承、組合與繼承的使用等等問題。
所以相對於C,C++包含了更豐富的“設計”的概念,但C是C++的一個自洽子集,也具有強大的功能,同樣值得學習。
幾點學習建議:
1.基本概念很重要。無論學C,還是學C++,基本概念都是第一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡,才能居高臨下。
2.C是C++的子集,它的基本概念和設計方法相對比較容易理解,初學者可從它入手。
3.如果要學好C++,建議初學者最好別在如VC,BCB平臺下寫程序,那種自動化的代碼生成,花花綠綠的界面,會讓你手足無措。最好先找一片空地(unix,dos),從頭做起,寫幾個大點的程序,數個回合,再到VC,BCB下看看,你會輕鬆得很。在我看來,學好C/C++是成為VC,BCB高手的必由之路。
4.不要妄想速成,必須得一個byte,一個bit的去摳,儘量搞清楚每一個問題。
5.幾本好書:
機械工業出版社的那套“計算機科學叢書”從C到C++,到面向對象設計,一應俱全,都TMD是經典中的經典,而且價格公道,童叟無欺。
國內也有幾本好書,譚老爺子的書好倒是好,就是程序錯誤太多。強烈推薦清華周之英的《現代軟件工程》(上、中、下),它是我所見到的國內少有的一本好書,精華的精華,要點的要點,細細品來,至少也屬降龍十八掌等級的東東。
如果還是有人想學習C/C++的話, 有一些小問題我還是樂意解答的. 但是我認為學習C/C++是不重要的, 重要的是如何鍛鍊你的思路. 不要找一些連自己都搞不清的問題去做.
我認為雖然 "潭浩強" 同志有騙錢的嫌疑( 我手頭就有一本幾乎一模一樣的英文書 ), 但是, 是他把這本入門手冊引入中國, 使無數程序員瞭解了C語言, 我想他的功勞也是不可磨滅的. 在< C語言程序設計 >這本書中所有的例子都可以用做鍛鍊思路的基石, 他對大家的編程是很有幫助的. 我認為是值得一買的. 去思考課後的例子對你的編程很有幫助. 不要小看一個一個簡單的例子, 他們是你通往成功的道路.
當你基本能夠掌握了上一本書中例子後, 你就要自己找一些例子程序去看. 開始可能是看不懂, 但是隻要努力......
指針式萬用表有哪些優缺點?
指針式萬用表的優缺點
1、指針萬用表是一種平均值式儀器儀表,它具有直觀、形象的讀數指示。(一般讀數值與指針擺動角度密切相關,所以很直觀)。
2、指針式萬用表一般內部沒有放大器,所以內阻較小,比如MF-10型,直流電壓靈敏度為100千歐/伏。MF-500型的直流電壓靈敏度為20千歐/伏。
3、指針式萬用表由於內阻較小,且多采用分立元件構成分流分壓電路。所以頻率特性是不均勻的(相對數字式來說),而指針式萬用表的頻率特性相對好一點。
參考資料:百度搜索艾馳商城,裡面的知識庫有全面的工業品學習資料和產品解決方案,還可以滿足你的採購需求。
C++中的指針有什麼作用?
指針的功能強大,它可以指向數據存放的地址,指針既可以指向變量地址,也可以指向函數。因此,無論是調用數據,還是調用函數,都可已使用指針。指針實現間接訪問,可以保證原數據不會丟失。
什麼是指向函數的指針,有什麼好處
下面這個說的很清楚:
函數指針和指針函數有什麼區別???!?!?
比如
int恭(*P)()
int *p()
這兩個哪個是函數指針哪個是指針函數 並詳細區分之?!
答:
前一個是個函數指針,如果有個函數是這樣定義的
int pfunction( )
那就可以用指針指向這個函數
p=pfunction;
然後調用時就可以這樣用
p();
後一個是指針函數,他的返回值是一個指向整型變量的指針,
參考資料:zhidao.baidu.com/question/40275929.html?si=1
數組和指針各自的優缺點
數組是一連續的記憶體區塊,必須先行決定配置容量和存放的資料型態。
例:int a[10];
因容量已被固定,故稱為靜態數組,若容量在使用前配置,則稱為動態數組。須自行配置及釋放記憶體。
例: int b[];
b = new int(10);
delete(b);
指針的使用更加彈性,它指向一個變數、物件乃至於函數位址,並可使用其內容,以上述例子說明:
int *p;
p = a;
printf('%d', *p); //列印 a[0]的內容
p+=3;
printf('%d', *p); //列印 a[3]的內容
C語言中一個程序用指針有什麼優勢麼?
指針可以方便地訪問字符串
我們程序運行的時候可使用的內存可以分成棧和堆。
堆的空間很大,用指針可以很方便地操作堆。
選擇法與冒泡本質沒有什麼區別,唯一優勢可以少做幾次交換。