怎麼理解C語言裡的指標?C語言指標的用法是什麼?

時間 2023-06-15 05:15:03

1樓:

解,個人覺得指標是一個有用的定址的輔助工具,程式編著編著就會想用,再接下來,還會給c語言創新功能。

1)數序函式是中學學過的,函式有定義域,而定義域裡的資料一般都是有序或有機的,在c裡面變為陣列;

2)上述資料將被按地址逐個存放在計算機記憶體中,1)所述資料不例外。

3)函式的本意就是對可操作的資料進行對映,因此在處理那些定義域的資料可以使用資料地址找到,非常方便,快捷。

不過,使用指標時別弄錯,弄錯了,語法是檢查不出來,可是結果卻會出來一個莫名其妙的資料,指標不知道指到哪個位置了,而那些位置都有資料,不過和本程式會無關。

2樓:程式小冰

c語言裡面的指標,就相當於是一個指路的東西,指向地址的記憶體。

3樓:聽不清啊

指標就是一個地址,告訴你的,直接到電腦記憶體中根據這個指標的型別取一個相應的值。所以它的操作效率會很高,應用也會非常方便。

c語言指標的用法是什麼?

4樓:信必鑫服務平臺

指標是c語言中廣泛使用的一種資料型別。運用指標程式設計是c語言最主要的風格之一。

利用指標變數可以表示各種資料結構;能很方便地使用陣列和字串;並能象組合語言一樣處理記憶體地址,從而編出精練而高效的程式。指標極大地豐富了c語言的功能。

學習指標是學習c語言中最重要的一環,能否正確理解和使用指標是我們是否掌握c語言的一個標誌。

同時,指標也是c語言中最為困難的一部分,在學習中除了要正確理解基本概念,還必須要多程式設計,上機除錯。只要作到這些,指標也是不難掌握的。

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

5樓:匿名使用者

通俗的說,就是你家的門牌號,簡單地說指標就是指向變數和物件的地址。

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

6樓:笛芭訪

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

7樓:匿名使用者

在電腦裡定義一個量時會在記憶體中申請一的地址來存放這個值,而指標就是一個存放值的地址的變數求採納。

c語言中的指標到底有什麼用

8樓:匿名使用者

所有變數值儲存在記憶體中,而每個記憶體都有一個地址,所謂地址就是一個整數編號,如同門牌號碼用於定位(專業術語叫定址),一個地址對應一個位元組(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

9樓:匿名使用者

指標起的作用是標識一塊記憶體。電腦記憶體上的每一個位元組都具有一個編號,稱為地址(可以簡單理解為指標),任何讀寫記憶體的指令都必須攜帶地址資訊,否則電腦不知道讀寫那塊記憶體。不管你的程式是用什麼語言寫的,要執行資料和**必須駐留記憶體,cpu要執行指令必須有一個「指標」(程式計數器)指向記憶體的**塊,如果某個指令要操作記憶體資料,該指令必須攜帶額外的地址資訊。

c語言的指標讓程式設計師具備直接操作和管理記憶體的能力,這個能力也是c語言適合編寫底層軟體的原因之一。現在拿得出手的作業系統都是用c語言(有時也用c++)和組合語言編寫的。在底層軟體領域c語言是佔統治地位的。

c語言對記憶體的操作都是通過指標來實現的,雖然c語言可以通過變數名訪問記憶體,但是編譯過後變數名被轉換為地址。

其他語言雖然沒有指標或者地址概念,但是訪問記憶體是需要地址的,所以與地址相關的底層操作由該語言的執行時庫承擔了,對程式設計師來說,地址就「不存在了」。

10樓:匿名使用者

c#也有指標,只是它是物件導向的,有著大量的封裝,在c#裡指標(*)變成了引用(ref)、(a->b)變成了(。指標就是地址,把一個記憶體單元畫成正方體(畫在紙上能可見3個面),上面分別標註:

變數名、地址、值。這就形象多了。

11樓:匿名使用者

能理解為邏輯上順序排列的門牌號?

12樓:看來還真有

c#可以做的,c語言全部都能做。但是c語言能做的,c#未必做的了。

指標指向記憶體地址,意味著c語言可以直接操作計算機的硬體,只要有地址,這也就是c語言適合底層開發的原因。

13樓:匿名使用者

要注意區分變數的指標和指標變數兩個概念。。。

14樓:**的迷茫

指標是一個32位資料,代表一個記憶體地址,這塊記憶體可以放任何東西。就是說指標可以操作任何東西,所以指標很靈活、很強大,但也引入了複雜性。只要理解了指標的原理,再複雜也可以一點一點的分析清楚。

c#的引用跟指標有相似之處,並且可以在unsafe塊裡直接使用指標運算元據。

15樓:匿名使用者

c要是沒指標,那它早淘汰了。

16樓:匿名使用者

指標是不是取地址用的啊。

17樓:韶正季夏山

指標實際上就是一個記憶體地址,比如一個函式指標,就是一個函式的入口地址,通過這個地址,系統就可以找到這個函式的位置並呼叫它。

c語言中指標是什麼

18樓:it小敏同學

我們都知道:c語言中的陣列是指 一類 型別,陣列具體區分為 int 型別陣列,double型別陣列,char陣列 等等。同樣指標 這個概念也泛指 一類。

資料型別,int指標型別,double指標型別,char指標型別等等。

通常,我們用int型別儲存一些整型的資料,如 int num = 97 , 我們也會用char來儲存字元: char ch = a'。

19樓:匿名使用者

把儲存著地址的變數叫做指標。

c語言指標的概念

20樓:匿名使用者

開闢一個地址空間。

空間中的內容記錄的是。

另一個地址。

對他指向的資料進行操作。

和直接對變數操作是一個意思。

c語言指標怎麼理解,什麼時候會用到指標,要注意哪些方面

21樓:匿名使用者

指標可以理解為一張 寫有變數或函式入口或結構體具體存放位置地址 的紙條,如果把記憶體比作一棟大樓,那麼紙條上寫得就是第幾層樓第幾號室。使用指標的意思就是自己根據紙條上地址,找到對應的房間,並對房間裡面的東西取出來做出你需要的操作。

用到指標的情況很多,最常見的是被呼叫函式返回多個引數時會用到;製作各種連結串列會用到;訪問結構體成員會用到;手動動態分配使用記憶體會用到;一些特定的結構體變數型別會用到(如 file)為提高程式執行效率也會特意使用指標(包含很多種情況,不再贅述);等等等等。

要注意的地方也很多,很難說完,常見的就以下幾種(我能想到的):

1.指標變數和普通變數概念使用方式相混淆。

2.指標變數的賦值(初始化,傳遞地址)方式有誤3.指標變數的型別與所指元素的型別不一致。

4.指標移動不恰當。

5.指標在使用過程中發生了不必要的導致錯誤的改變6.多重的指標指向指標,導致形成難以理清的邏輯關係還有很多其他情況,在不同的使用環境下,指標會產生一些特定的要注意的問題;歸根結底是c語言指標太靈活了,能做得事非常多,代價就是產生問題的原因也是很靈活的,一一列舉幾乎是不可能的。

希望對你有所幫助。

22樓:匿名使用者

說實話吧,c語言的精髓就是指標,你的這個問題,沒有誰能幫你解決,去看看書吧。

推薦 《c和指標》講解的挺詳細,自學的難度是有點大,這是大一的課程,你呢?是、、、

23樓:匿名使用者

個人理解。

指標就是地址,不過這個地址是有型別的,比如一個int型的指標,int指的是該指標指向的那塊記憶體存放的內容是一個int型的資料。

或者也可以把指標的型別簡單的看作是這個指標所能管到的記憶體的大小,如一個int型別的指標可以管4個位元組,char型別的可以管1個位元組。

24樓:匿名使用者

就是資料的地址。 通過指標,可以向這個地址寫入資料,或者讀取資料。p是地址, *p就是地址的內容。

25樓:韭花逞味

c語言指標就是記憶體地址。既然是記憶體地址當然可以用它來訪問記憶體。所以當你要對記憶體進行讀、寫或分配、釋放的時候會用到。

甚至可以用函式指標來訪問函式。要注意的東西一時說不全,這個需要自己實踐總結。

c語言中指標是什麼?

26樓:養雅韻翠風

指標是c語言的難點,很難被學生接受。本部分主要演示:指標的定義,普通變數的定義,建立關聯,直接賦值,間接賦值。為了簡便,暫時只討論整形。

設計:在組合框中選擇操作的型別,在彈出的對話方塊中做進一步的處理。二十個模擬記憶體,十個為整形,十個為指標區。

由於「記憶體」的限制,很容易「記憶體不足」。二十個靜態控制元件顯示變數名及模擬記憶體地址。

整形陣列記錄數值,字串陣列記錄變數名,注意對應。

定義:加上變數名,並隨機賦初值。

關聯:在對話方塊的組合框中選擇變數,前有提示資訊"=&改變指標的值,並將相應的框連線。

賦值:在個對話方塊中選擇整形變數或指標變數,並輸入值。

有必要的話,將cedit改成crichedit,用setsel反向顯示正在處理的模擬空間。

測試:1,注意空懣狀態。

2,多次重複同一操作。

27樓:姓從蓉秘素

指標就是另一個變數在記憶體中的地址引數,它也佔用記憶體空間,裡面放的是另一個記憶體地址。

28樓:針迎秋藍曲

c語言的指標很難學,指標是一個變數,如果指標*p,p就是地址哦,*p是變數。

29樓:睢俊能析彬

1.指標就是1個變數,他也是一個存放內容的記憶體空間。

2.指標存放的內容是另一個記憶體空間的起始地址。不同於一般變數存放的就是變數值。

3.取值操作符*對於指標的作用是取得指標變數存放的記憶體地址裡面的值,不加*取出的是指標變數存放的值(就是一個記憶體地址)

上面3步,step

bystep

你就理解了。

怎麼理解C語言指標中a b,c語言中,指標問題! a b和a b,有什麼不同?a是指標

豬頭或火寶寶 你好!首先我們已經知道 a,b,都是指標變數,a表示指標變數所指向的值,同樣 b也是如此。a b就是表示把指標b所指向的值賦值給指標變數a所指向的值。但是要是指標a要是沒有初始化或是開闢空間的話,這樣賦值就有危險!例如 int a int b 5 a b 首先宣告一個指標變數a,但是系...

C語言指標問題,C語言指標問題?

文庫精選 內容來自使用者 zzbo2022 讓你不再害怕指標 前言 複雜型別說明 要了解指標,多多少少會出現一些比較複雜的型別,所以我先介紹一下如何完全理解一個複雜型別,要理解複雜型別其實很簡單,一個型別裡會出現很多運算子,他們也像普通的表示式一樣,有優先順序,其優先順序和運算優先順序一樣,所以我總...

C語言指標問題,C語言指標問題。

最大的寶寶 pointer是指標指向的一個值,此時為2,這個值再自加1自然為3。pointer此時還指向值2,減2的含義是指標回退兩個元素,自然指向了值6。指標本身有值,表示它指向的地址,這個值可以運算,表示對地址的修改。而指標指向的值,其實就是位於這個地址所存的值。在彙編以上層次的程式設計中,記憶...