1樓:網友
學習指標,覺得應該先了解下記憶體,說下我對記憶體的理解,不一定對:
記憶體中就是一堆0和1,除此之外,應該沒有其他東西了。那麼某個位址上的內容為什麼有「意義」呢?好吧,那些意義是我們解釋的,如果我們將某四個位元組「當做」int,那麼那四個位元組就會是我們可以理解意義上的int值,如果我們將同樣的四個位元組當做float來理解,那麼它就是乙個float值。
但是在記憶體中,這四個位元組是一樣的,不一樣的是我們用來解釋這四個位元組的方法。
而指標就是記憶體中某個位址的值,指標的型別就是為了告訴編譯器如何去解釋該指標指向的內容。
怎麼學呢?如果英文還可以的話,推薦看看斯坦福的一門課叫《程式設計模式》(programming paradigm),網上有**,強烈推薦做該課程練習,如果做這門課的程式設計練習感覺沒有提高,那。。。額,應該已經是高手了。
2樓:匿名使用者
使用指標需要注意的:
1。 指標一定有分配記憶體,或指向已知有效的記憶體(如別的變數位址,別的指標)
2。用完記得釋放,每乙個路徑(比如if else 都需要釋放),釋放後置null
3。通常本著誰申請,誰釋放的原則。
剩下的就是大膽嘗試了,別怕錯,多總結。
3樓:匿名使用者
指標可以說就是位址,你除錯就可以發現指標是個32位的值,所以int和指標是可以強轉的。
既然是位址,我們有了某個變數的位址就可以直接訪問該變數了。僅此而已。
c語言指標的用法是什麼?
4樓:信必鑫服務平台
指標是c語言中廣泛使用的一種資料型別。運用指標程式設計是c語言最主要的風格之一。
利用指標變數可以表示各種資料結構;能很方便地使用陣列和字串;並能象組合語言一樣處理記憶體位址,從而編出精練而高效的程式。指標極大地豐富了c語言的功能。
學習指標是學習c語言中最重要的一環,能否正確理解和使用指標是我們是否掌握c語言的乙個標誌。
同時,指標也是c語言中最為困難的一部分,在學習中除了要正確理解基本概念,還必須要多程式設計,上機除錯。只要作到這些,指標也是不難掌握的。
c語言中的指標到底有什麼用
5樓:匿名使用者
所有變數值儲存在記憶體中,而每個記憶體都有乙個位址,所謂位址就是乙個整數編號,如同門牌號碼用於定位(專業術語叫定址),乙個位址對應乙個位元組(8bit)的記憶體單元。
如今的編譯器,乙個整數int型別的值佔用32位bit,也就是4位元組,編譯器將第乙個位元組的編號定義為該整數的位址,由於儲存位址的變數就像乙個箭頭指向某位址,而稱為指標變數。
int a =10; /定義乙個整數變數a,對其賦值10
int *p =&a;//定義乙個指標變數p,對其賦值a的記憶體位址,&符號意思為引用跟隨其後的變數位址。
cont 《定址->取值。
由於指標是乙個變數的首個位元組的位址,所以要告訴編譯器被指位址包含連續多少個位元組,因此指標也有型別。比如上面例子中宣告了p指標是個整數指標,這樣編譯器知道p指向乙個4位元組的記憶體塊。
你可以將指標變數看做一般的整數變數來理解,用來儲存乙個整數(位址是個整數),只是,該整數代表著某位址,在這裡是a的位址。
在c/c++中很靈活,但是也很危險,也很難學,如果指標指向錯誤的位址會引起程式崩潰,因此在c#中已經被微軟封裝了,但內部還是有指標的。
如果有必要,c#中也可以使用指標,使用非安全**,在專案生成選項卡中勾選「允許非安全**」,然後就可以使用指標了,不過不建議這麼做。
unsafe
6樓:匿名使用者
指標起的作用是標識一塊記憶體。電腦記憶體上的每乙個位元組都具有乙個編號,稱為位址(可以簡單理解為指標),任何讀寫記憶體的指令都必須攜帶位址資訊,否則電腦不知道讀寫那塊記憶體。不管你的程式是用什麼語言寫的,要執行資料和**必須駐留記憶體,cpu要執行指令必須有乙個「指標」(程式計數器)指向記憶體的**塊,如果某個指令要操作記憶體資料,該指令必須攜帶額外的位址資訊。
c語言的指標讓程式設計師具備直接操作和管理記憶體的能力,這個能力也是c語言適合編寫底層軟體的原因之一。現在拿得出手的作業系統都是用c語言(有時也用c++)和組合語言編寫的。在底層軟體領域c語言是佔統治地位的。
c語言對記憶體的操作都是通過指標來實現的,雖然c語言可以通過變數名訪問記憶體,但是編譯過後變數名被轉換為位址。
其他語言雖然沒有指標或者位址概念,但是訪問記憶體是需要位址的,所以與位址相關的底層操作由該語言的執行時庫承擔了,對程式設計師來說,位址就「不存在了」。
7樓:匿名使用者
c#也有指標,只是它是物件導向的,有著大量的封裝,在c#裡指標(*)變成了引用(ref)、(a->b)變成了(。指標就是位址,把乙個記憶體單元畫成正方體(畫在紙上能可見3個面),上面分別標註:
變數名、位址、值。這就形象多了。
8樓:匿名使用者
能理解為邏輯上順序排列的門牌號?
9樓:看來還真有
c#可以做的,c語言全部都能做。但是c語言能做的,c#未必做的了。
指標指向記憶體位址,意味著c語言可以直接操作計算機的硬體,只要有位址,這也就是c語言適合底層開發的原因。
10樓:匿名使用者
要注意區分變數的指標和指標變數兩個概念。。。
11樓:**的迷茫
指標是乙個32位資料,代表乙個記憶體位址,這塊記憶體可以放任何東西。就是說指標可以操作任何東西,所以指標很靈活、很強大,但也引入了複雜性。只要理解了指標的原理,再複雜也可以一點一點的分析清楚。
c#的引用跟指標有相似之處,並且可以在unsafe塊裡直接使用指標運算元據。
12樓:匿名使用者
c要是沒指標,那它早淘汰了。
13樓:匿名使用者
指標是不是取位址用的啊。
14樓:韶正季夏山
指標實際上就是乙個記憶體位址,比如乙個函式指標,就是乙個函式的入口位址,通過這個位址,系統就可以找到這個函式的位置並呼叫它。
c語言中指標怎麼使用?
15樓:匿名使用者
我是這樣理解的:
在c語言中,你需要定義變數,那麼你所定義的這個變數本身你要理解兩層含義:
1)變數中的值是多少?有了值我們可以直接拿變數參與運算,eg. int a=5;在計算的時候a就表示5;
2)變數儲存在記憶體中的什麼位置?變數的儲存位置,就是變數的位址,那麼這個位址可以用指標來儲存,eg. int a=5, *p=&a; 在這裡p就是指標變數,儲存了變數a的位址,這個時候你要是用a變數的值,即可以直接用a,也可以用*p,*p是通過p這個指標(也就是a的位址),間接的找到a,在程式中*p與a是等價的。
16樓:匿名使用者
指標是指向位址的,所以你對指標修改也會影響到原位址的值,所以當你需要在函式裡修改函式外的變數時可以考慮指標,當然指標還可以連線結構體裡的節點之類的,後面還有跟函式有關的,只要多揣摩就會了解了。
17樓:欣夢魂
指標可以理解為位址即指向位址的指標,在使用之前要明確三個問題,指標的型別,指標指向的型別,指標指向值的記憶體區域。通過傳遞值的位址來傳遞值。
18樓:我是張玉柱
就是位址的位址,之後會學到指標型函式就是函式引數是指標型別的,我們平時學的是int ,float等等,還會學到函式指標就是呼叫函式的位址。
c語言中用指標的好處有哪些?
19樓:匿名使用者
指標非常的好,它把相同的事物歸類,然後把事物做出標記,避免給相同的特點做變數。比如說你和你同學,你們兩個人都有心臟、肝、肺等器官,如果命名心臟1、心臟2這樣比較麻煩,這時如果用上指標,指向你說心臟時說的是你的心臟,指向你同學時說的是你同學的心臟,如果人非常的多,你不用指標,那麼命名心臟.。那是非常的多的不必要的變數。
我現在運用plc和wincc連線時有的時候就用指標。節省了通訊時間,省略了很多的變數。
20樓:匿名使用者
c語言指標的作用很多,指標可以直接操作記憶體,理解為直接操作記憶體的優點有哪些。
1、效率更高,這個很容易理解,直接操作記憶體,效率必然更高2、可以寫複雜度更高的資料結構,這個也好理解,程式設計師可以操作記憶體,當然可以寫出靈活、複雜的資料結構。
3、編寫出簡潔、緊湊、高效的程式。
21樓:香帥之楓
所有的資料都是放在記憶體空間上的,一般不用指標用變數的話,你需要自動分配空間給你的變數來進行運算元據。而一旦使用了指標,你就可以直接在記憶體空間上進行操作,而不需要考慮資料變數的問題。你只要知道指標位址就可以進行操作。
有沒有什麼比較好的講解翻譯技巧書籍的呢
翻譯研究 思果著。此書已絕版,某知名購物 可買到影印版。這本書非常樸實地講解了翻譯中可能碰到的問題以及一些技巧,個人感覺很不錯 catti考試教材 權威而且標準。建議先看尚致勝的 生命金字塔 再看李中瑩的 重塑心靈 然後可以看看李中瑩的 nlp簡快心理 學習翻譯用哪些書籍比較好 1 翻譯技巧類 翻譯...
有沒有外觀比較好看的口紅,有沒有外觀比較好看的三防手機
espoir的外觀很好看的,口紅外觀是磨砂的,顏色是口紅色號的顏色,顏值棒棒噠 有沒有外觀比較好看的三防手機 哪個口紅外觀好看,說出理由,女的答 按我個人而言 選紅色 如果 白的話趁膚色 雖然粉色也是可以 但是具體塗什麼顏色就看你適合什麼顏色 或者你可以每個都塗一下試試 自己感覺那個好 我們在這說都...
吳江有沒有什麼比較好的家政公司,求推
家政公司 有很多,判斷一家家政公司口碑好不好可以從以下幾個方面進行考察 1 檢視資質 檢視該公司是否有工商部門頗發的營業執照,是否有註冊資本,是否有稅務部門頗發的稅務登記證。2 選擇合適 靠譜的 選擇家政公司的話盡量選擇信譽好,服務規範的家政公司。比如說,吳江e家政的阿姨3險齊全,阿姨均需參保家政險...