當前位置:首頁 » 編程語言 » c語言與指針
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言與指針

發布時間: 2022-01-23 02:56:14

c語言指針和結點之間的區別是什麼

指針是指針,它是存放地址的,而鏈表中的結點使用了指針表示每一個結點的地址,比如你在創建一個結點時struct student{ char name[20]; int age; struct student *next; }(struct student)malloc(sizeof(struct student));這就是你創建的一個結點的大小而成員next則是一個指針用來指向下一個節點的地址,所以每一個結點存放的是一個student的信息。

② c語言指針的概念

指針是C語言中廣泛使用的一種數據類型。 運用指針編程是C語言最主要的風格之一。利用指針變數可以表示各種數據結構; 能很方便地使用數組和字元串; 並能象匯編語言一樣處理內存地址,從而編出精練而高效的程序。指針極大地豐富了C語言的功能。 學習指針是學習C語言中最重要的一環, 能否正確理解和使用指針是我們是否掌握C語言的一個標志。同時, 指針也是C語言中最為困難的一部分,在學習中除了要正確理解基本概念,還必須要多編程,上機調試。只要作到這些,指針也是不難掌握的。

指針的基本概念 在計算機中,所有的數據都是存放在存儲器中的。 一般把存儲器中的一個位元組稱為一個內存單元, 不同的數據類型所佔用的內存單元數不等,如整型量佔2個單元,字元量佔1個單元等, 在第二章中已有詳細的介紹。為了正確地訪問這些內存單元, 必須為每個內存單元編上號。 根據一個內存單元的編號即可准確地找到該內存單元。內存單元的編號也叫做地址。 既然根據內存單元的編號或地址就可以找到所需的內存單元,所以通常也把這個地址稱為指針。 內存單元的指針和內存單元的內容是兩個不同的概念。 可以用一個通俗的例子來說明它們之間的關系。我們到銀行去存取款時, 銀行工作人員將根據我們的帳號去找我們的存款單, 找到之後在存單上寫入存款、取款的金額。在這里,帳號就是存單的指針, 存款數是存單的內容。對於一個內存單元來說,單元的地址即為指針, 其中存放的數據才是該單元的內容。在C語言中, 允許用一個變數來存放指針,這種變數稱為指針變數。因此, 一個指針變數的值就是某個內存單元的地址或稱為某內存單元的指針。圖中,設有字元變數C,其內容為「K」(ASCII碼為十進制數 75),C佔用了011A號單元(地址用十六進數表示)。設有指針變數P,內容為011A, 這種情況我們稱為P指向變數C,或說P是指向變數C的指針。 嚴格地說,一個指針是一個地址, 是一個常量。而一個指針變數卻可以被賦予不同的指針值,是變。 但在常把指針變數簡稱為指針。為了避免混淆,我們中約定:「指針」是指地址, 是常量,「指針變數」是指取值為地址的變數。 定義指針的目的是為了通過指針去訪問內存單元。

既然指針變數的值是一個地址, 那麼這個地址不僅可以是變數的地址, 也可以是其它數據結構的地址。在一個指針變數中存放一
個數組或一個函數的首地址有何意義呢? 因為數組或函數都是連續存放的。通過訪問指針變數取得了數組或函數的首地址, 也就找到了該數組或函數。這樣一來, 凡是出現數組,函數的地方都可以用一個指針變數來表示, 只要該指針變數中賦予數組或函數的首地址即可。這樣做, 將會使程序的概念十分清楚,程序本身也精練,高效。在C語言中, 一種數據類型或數據結構往往都佔有一組連續的內存單元。 用「地址」這個概念並不能很好地描述一種數據類型或數據結構, 而「指針」雖然實際上也是一個地址,但它卻是一個數據結構的首地址, 它是「指向」一個數據結構的,因而概念更為清楚,表示更為明確。 這也是引入「指針」概念的一個重要原因。

③ 關於c語言的指針

這個程序的指針變數經過p=&q,等於把變數q的地址賦給了指針變數p!也就意味著!這兩個變數代表著同一個地址單元的不同形式,p是地址,q是該地址存儲的值!利用scanf(「%d」,p) 與scanf(「%d」,&q) 是一樣的!那麼底下列印語句,列印的是q,因此是變數的值,不是地址!如果想列印地址,可把q換成p!

還有書上是寫出來的,有可能出錯!到計算機運行程序!是不會出錯的!一切以計算機運行出來的為准! 出現書上的和運行出的結果不同!計算機為准!通過分析!可以學到不少東西!

④ C語言中指針*和&

BSTreeNode *& head中head是指向BSTreeNode的指針,BSTreeNode *root中root也是指向BSTreeNode的指針
不同的是前者是引用傳遞,後者是值傳遞,*&不是一個算符,*代表指針,而&代表引用傳參方式

⑤ C語言,貌似與指針有關

使用指針的原則:

/* 1。定義時初始化為空 */
int *p=NULL;

/* 這里給指針賦值或者其他操作 */

/* 2。使用時判斷 */
if(p!=NULL)
{
/* 這里使用指針 */
}

這樣就不會錯了,不能怕麻煩。

⑥ C語言中指針和引用的區別

指針,全稱為指針變數,是用來存儲內存地址的一種變數。程序中,一般通過指針來訪問其指向的內存地址中的內容(數據)。

引用,是C++中提出來的一種新的使用變數的方式,即,給實際變數起個別名,通過這個別名來引用實際的變數。標准C中不支持變數的引用。

這兩個概念沒有任何相關性。

指針是實實在在的變數,有自己的內存存儲空間,它可以指向任何有效的變數。

引用是一種形式、方法,定義的引用變數,實際上是原實際變數的另一個名稱(別名),引用變數本身沒有自己的實際存儲空間,操作引用變數,就是在操作實際變數。

如:

⑦ c語言 指針 的&和*的到底在幹嘛。

a是數組,數組名在絕大多數情況下,使用形式上等同於地址的使用形式,但是,a是數組名,不是地址,你要混淆了,那就說明你老師教錯了。

*就是取內容,&就是取地址,就記住這點就夠了, 說得再多都是廢話,沒用的廢話

⑧ C語言裡面的指針和地址有什麼區別

基本上沒有區別,c++僅僅只是在c語言的基礎上增加了面向對象的概念,所有它又被稱為是「帶類的c」,因此,c++在指針操作上增加了指向對象的指針(引用);但究其本質而言,指針仍然是內存中的地址,這一點沒有改變.

⑨ c語言指針的指針是什麼

指針存儲的是變數的地址,指針本身可以看做一個整型變數,它在內存中有一個地址。那麼指針的指針儲存的就是一個指針的地址。

⑩ c語言的指針部分 *p與p區別

c語言的指針部分 *p與p區別如下:

1、作用不同

*p表示此指針指向的內存地址中存放的內容。

p是一個指針變數的名字,表示此指針變數指向的內存地址。

2、輸出內容的格式不同

*p常用在一個和指針類型一致的變數或者常量。

p輸出一個指針的地址,通常是輸出一個16進制的數。

3、效果不同

*p是讓編譯器從指定的地址中讀取出數據。

p是用來存放要讀取數據的地址。

(10)c語言與指針擴展閱讀

C語言中使用指針的作用:

1、指針使程序的不同部分能夠共享數據

類似於共享內存,如果將某一個數據值的地址從一個函數傳遞到另外一個函數,這兩個函數就能使用同一數據。

2、利用指針,能在程序執行過程中預留新的內存空間

大多數情況下,可以看到程序使用的內存是通過顯式聲明分配給變數的內存。但是在很多應用場合中,可能程序運行時不清楚到底需要多少內存,使用指針可以讓程序在運行時獲得新的內存空間,並讓指針指向這一內存更為方便。

3、指針可以用來記錄數據項之間的關系

在高級程序設計應用中,指針被廣泛應用於構造單個數據值之間的聯系。比如,程序員通常在第一個數據的內部表示中包含指向下一個數據項的指針(實際上就是鏈表了),來說明這兩個數據項之間有概念上的順序關系。