1樓:匿名使用者
指標,太有用了,也最難管理的,好處多的是,比如,函式傳遞,引數是結構時,傳指標可以提高效能
2樓:匿名使用者
可以通過傳遞和儲存指標,通過資料的相對位置來訪問資料,而不用定義不同的n個變數來,分別使用。
比如 int a[10];
那麼用a[0]....a[9]即可訪問裡面的10個資料,而只需要知道a的地址即可,操作方便,而且在函式之間傳遞資料時更方便。
3樓:治國
可以很大程度上提高程式的效能啊
4樓:huc小鬼
簡化**,如果變數多的話就有優勢了。
5樓:冷月狂魔寒楓
資料結構中基本上都是指標。一定要學好
6樓:殳妞烏雅明煦
指向變數地址,進而對變數操作
c語言中指標a=b與*a=*b有什麼區別
7樓:育知同創教育
a=b就是把b的地址賦給a
*a=*b就是把b的記憶體地址對應的值給a
8樓:康瑜小簧
b指標的話,b=a肯定不對。要麼*b=a,要麼b=&a,這兩種語法都
正確,但是意義不同。前者將a的值賦值給指標b所在的地址,兩個值相互不影響。後者將a的地址賦值給指標b,a和b指向同一個記憶體地址,該地址的值如果有變化,a和*b同時會變化。
c語言中用指標的好處有哪些?
9樓:匿名使用者
指標非常的好,它把相同的事物歸類,然後把事物做出標記,避免給相同的特點做變數。比如說你和你同學,你們兩個人都有心臟、肝、肺等器官,如果命名心臟1、心臟2這樣比較麻煩,這時如果用上指標,指向你說心臟時說的是你的心臟,指向你同學時說的是你同學的心臟,如果人非常的多,你不用指標,那麼命名心臟1、2、3、4、5.。。。那是非常的多的不必要的變數。
我現在運用plc和wincc連線時有的時候就用指標。節省了通訊時間,省略了很多的變數。
10樓:匿名使用者
c語言指標的作用很多,指標可以直接操作記憶體,理解為直接操作記憶體的優點有哪些。
1、效率更高,這個很容易理解,直接操作記憶體,效率必然更高2、可以寫複雜度更高的資料結構,這個也好理解,程式設計師可以操作記憶體,當然可以寫出靈活、複雜的資料結構
3、編寫出簡潔、緊湊、高效的程式
11樓:香帥之楓
所有的資料都是放在記憶體空間上的,一般不用指標用變數的話,你需要自動分配空間給你的變數來進行運算元據。而一旦使用了指標,你就可以直接在記憶體空間上進行操作,而不需要考慮資料變數的問題。你只要知道指標地址就可以進行操作
c語言中指標存在的意義
12樓:匿名使用者
計算機計算暫存器自加1的指令一般耗用一個時鐘週期,而加法和減法運算需要耗用許多時鐘週期。因此,做變數的自加或自減就要比做加法或減法的效率高很多。
在訪問大資料量的資料時,如果不關心資料距離資料開始的位置,只需要訪問當前資料,或當前資料左右上下位置時(比如做影象資料的逐點或區域處理計算),使用指標指向影象資料,就能利用自加或自減快速訪問陣列中的畫素資料,而不必用類似uimage[24][76]這樣的方式來訪問(這樣的訪問會用到一次乘法和一次加法運算)
在函式呼叫或返回時,如果引數或返回值並不是簡單資料型別的資料時,可以利用指標指向一個複雜資料的集合體(陣列、結構、類),這樣只傳遞資料型別和起始地址就可以交換複雜資料了,這種方式傳遞地址就是使用的指標型別引數。
13樓:
沒有指標的話c語言就沒有存在的價值了
c語言的指標有什麼優缺點?
14樓:愛夏的你呀
1、指標的優點
是標識一塊記憶體。電腦記憶體上的每一個位元組都具有一個編號,稱為地址(可以簡單理解為指標),任何讀寫記憶體的指令都必須攜帶地址資訊,否則電腦不知道讀寫那塊記憶體。
不管程式是用什麼語言寫的,要執行資料和**必須駐留記憶體,cpu要執行指令必須有一個「指標」程式計數器指向記憶體的**塊,如果某個指令要操作記憶體資料,該指令必須攜帶額外的地址資訊。
2、指標的缺點
指標可以操作任何東西,所以指標很靈活、很強大,但也引入了複雜性。
擴充套件資料
1、指標利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。
2、輸出一串字元時,只需要知道它的第一個字元的地址,就可以將這個字串輸出,而第一個字元的地址,可以用指標儲存。所以有n個字串時,就可以用n個指標來儲存。
3、為了儲存一個資料在記憶體中的地址,就需要指標變數。因此指標是程式資料在記憶體中的地址,而指標變數是用來儲存這些地址的變數。
15樓:文化廚子
指標是c語言只所以如此成功的重要原因之一,當然任何事物,往往都是一體兩面的,本質上是一體,看上去是兩面,關鍵是要活學活用,沒比較過分的區別優點、缺點。
c語言主要是針對硬體及系統底層程式設計的,在針對硬體及系統底層程式設計中,對資料的靈活性要求較高,換句話說資料的意義需要經常變動,而資料型別決定了資料的意義,指標一個重要作用是實現對資料型別的轉換,比如要將機器碼為0x3f8ccccd表示成浮點數:
#include
int main()
指標這種能改變資料上下文環境的能力是非常有用的, 比如檢測cpu所支援的儲存順序。
#include
char endian(void)
int main()
如果c語言沒有指標,當然可以想出其它的方法,但是遠沒有指標方便。
指標的缺點,可能對於初學者來說 ,往往不容易理解,而且使用指標程式設計經常會出現一些莫名其妙的錯誤,而且在平時使用c語言進行應用程式開發時,好像指標真的不怎麼有用,這些都不是問題,關鍵是看個人學習c語言的用處,做什麼開發,上什麼專案。
16樓:51cto學院
記憶體對齊的緣故。
p_buf 作為一個指標,它的值是記憶體的某個位元組的地址。
如果想要把 p_buf 強制轉換成一個 unsigned int*型別的指標,
需要滿足一個必要條件,就是 p_buf 的值必須能夠被4整除。(之所以是4,是因為 unsigned int 是要佔4個位元組的)。
17樓:匿名使用者
說那麼多幹什麼勒..
指標我覺得是畫蛇添足..沒有什麼好與不好.
可的情況還是需要用指標,不過覺得不多.
在c語言中什麼是指標?指標是幹什麼用的?,有什麼意義?
18樓:仙
寫簡單的程式的話不用指標也行了吧. 比如這裡a是一個地址(編譯後), 為了讀寫這個地址單元裡的東西,可以用p,也可以用一般變數a.
對於指標的便利,我現在能想到的,可能是:
函式a呼叫函式b時,把一個記憶體塊的地址傳遞過去,這樣可以避免按值傳遞時開闢一個棧空間並逐一拷貝記憶體塊裡的值的開銷(c++裡的拷貝建構函式在做這件事),並且a,b函式操作的都是同一個記憶體塊裡的東西,如果這就是目的,那麼傳指標就是很有效率的做法(如果不用指標就可能要用一個全域性的變數了). 用一個指標(函式指標)存放一系列同型別的函式名(入口地址),方便函式呼叫. void*型別指標可以存放任何型別指標.
讓父類型別指標指向任何子類物件可以實現動態繫結. 寫著寫著似乎指標還挺有用,呵呵.
在c語言中,指標變數有什麼實際的作用
19樓:想不到名字啊嗚
構建動態陣列啊...使被調函式修改主調函式的變數啊...獲取***的地址啊...
太多了,多到我都忘的差不多了...
沒有指標c就不叫c了,可以說是c裡面最重要,也是最難學的部分嘛,主要還是考試要...
c語言中指標和引用的區別,C語言中指標和引用的區別
指標,全稱為指標變數,是用來儲存記憶體地址的一種變數。程式中,一般通過指標來訪問其指向的記憶體地址中的內容 資料 引用,是c 中提出來的一種新的使用變數的方式,即,給實際變數起個別名,通過這個別名來引用實際的變數。標準c中不支援變數的引用。這兩個概念沒有任何相關性。指標是實實在在的變數,有自己的記憶...
c中指標怎麼用,c語言中指標怎麼使用
int p 宣告一copy個指向int的指標pint a a 3 p a printf d p 列印a的地址printf d p 列印a的值 p 4 改變a的值。printf d a 列印a的值為4 推薦看書 c和指標 這裡最好的回答吧,指標可不是一天兩天能夠學會的 c語言中指標怎麼使用?1 使用場...
C語言中,空指標的使用意義是什麼?在程式設計中使用空指標會帶來什
語言定義中說明,每一種指標型別都有一個特殊值 空指標 它與同型別的其它所有指標值都不相同,它 與任何物件或函式的指標值都不相等 不要返回指向棧記憶體的指標或引用,因為棧記憶體在函式結束時會被釋放。指標是個很強大的工具,可是正因為它太強大,所以要操作它不是件易事。操作不當造成的野指標,甚至會引起系統宕...