1樓:
在宣告int *pirand中
*表示這個變數是int型別的指標
在宣告之外
*可以理解成一個運算子 或者一個函式
*和&是一對逆運算
&的意思是讀一個變數的地址
比如你宣告瞭int a;&a是a的地址可能是xx1001之類的可以在除錯裡看一下
*的意思是讀一個地址指向的內容
&*pirand==pirand
rand是一個地址
*rand是指向這個地址的地址
所以程式出錯了
pirand[i]=rand(); 的意思是把rand的地址賦值給pirand[i]
2樓:福建省寧德市
指標是c語言中廣泛使用的一種資料型別,指標的*主要出現在兩個地方
首先是在指標定義時出現的*,定義時的 * 相當於標識了指標變數,即表明這是一個指標變數
其次,指標在使用時也會出現 *,這裡的*的取內容的意思,即把指標記憶體儲的東西提取出來使用
3樓:匿名使用者
*有多重意義:
1.在宣告變數時,它表示這是一個指標
2.還表示乘號
3.在scanf()中表示賦值約束。
4.在printf()中用於動態確定列寬和精度5.用於間接訪問指標所指向的物件的值。
而在pirand[i]=*rand();中,不符合以上任何一條。
4樓:匿名使用者
地址有規律地增長,
int是4個位元組的位置
所以可以當陣列使用,
每次地址增4表示下一個數
*是該地址 取數值
如p是指向 數i
那麼*p就是取p指向的數的值
pirand[i]=*rand();
pirand[i]表示陣列中的一個數字
所以pirand[i]=rand();
加個*是錯的
c語言中的空指標是什麼意思?
5樓:匿名使用者
這樣一看才知道大家對空指標的概念如此渾濁哦!!
首先:void* 這不叫空指標,這叫無確切型別指標.這個指標指向一塊記憶體,卻沒有告訴程式該用何種方式來解釋這片記憶體.
所以這種型別的指標不能直接進行取內容的操作.必須先轉成別的型別的指標才可以把內容解釋出來.
還有'\0',這也不是空指標所指的內容. '\0'是表示一個字串的結尾而已,並不是null的意思.
真正的空指標是說,這個指標沒有指向一塊有意義的記憶體,比如說:
char* k;
這裡這個k就叫空指標.我們並未讓它指向任意地點.
又或者char* k = null;
這裡這個k也叫空指標,因為它指向null 也就是0,注意是整數0,不是'\0'
一個空指標我們也無法對它進行取內容操作.
空指標只有在真正指向了一塊有意義的記憶體後,我們才能對它取內容.也就是說要這樣
k = "hello world!";
這時k就不是空指標了.
6樓:匿名使用者
如果函式的引數可以是任意型別指標,那麼應宣告其引數為void *
典型的如記憶體操作函式memcpy和memset的函式原型分別為:
void * memcpy(void *dest, const void *src, size_t len);
void * memset ( void * buffer, int c, size_t num );
這樣,任何型別的指標都可以傳入memcpy和memset中,這也真實地體現了記憶體操作函式的意義,因為它操作的物件僅僅是一片記憶體,而不論這片記憶體是什麼型別。空指標僅僅是申明瞭一個變數名,告訴編譯器有個變數存在,當然你後面肯定會用到它(事實上你不用也沒人怪你)。
注意c++中語法要求更嚴格,不允許直接對空指標賦值,而必須先進行型別轉換。
7樓:藍冰_藍水
上面的錯了。其實空指標就是指值為null的指標。而且null在c和c++的定義方式也不一樣,甚至不同的編譯器也有不同的要求。
例如:define null 0 //c的定義方式
define null (void *)0 //c++的定義方式
8樓:匿名使用者
指標沒有指向任何東西
空指標指的就的'\0'!
9樓:匿名使用者
指標沒有指向任何東西
10樓:匿名使用者
空指標指的就的「0」!
11樓:你是臥底
char* k 不能算空指標吧
c語言中的指標中的*和&什麼意思,指標到底是什麼東西,指標變數和指標常量又是用來幹嘛的?
12樓:gta小雞
如果把每個記憶體
copy單元比作一個房間,那麼它們的地址就是門牌號。指標變數中儲存的是其他變數的地址,即房間記憶體放的是其他房間的門牌號。例如有變數int a=2,其地址為0x402000,則a代表a的內容,為2;&a代表取a的地址,為0x402000;定義指標int *p=a,則p的內容是a的地址0x402000,*p的內容是p指向的地址的內容,即a的內容,為2.
c語言中%c是什麼意思
13樓:匿名使用者
用於格式化輸入輸出函式中, 針對char型別的匹配。
比如 輸入
用於輸入一個字元型。
輸出時類似。
所有的格式化輸入輸出函式,都可以用這個。
c語言中指標的作用是什麼?
14樓:杜爺1號
簡單地說指標就是指向變數和物件的地址。
指標的用途非常廣泛,比如如果你想通過函式改變一個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞一個地址就行,大大提高了效率。
以上還只是指標的初步應用,隨著你在c語言學習上的逐步深入,你會發現更多的用途的。
15樓:匿名使用者
用來簡單的標示一個地址引用。
指向變數地址,便於對變數操作。
就像桌面的快捷方式,它指向一個真實的檔案。
就像給儲存器的某個儲存地址單元起了個名字,操作這個名字就等於操作的這個儲存地址單元,比如,要給某個儲存地址單元賦值,這時候就把值賦給,指向這個儲存地址的名字。也就是說,使用指標表示地址單元比直接用記憶體地址號表示方式,更人性化,操作更靈活。
16樓:匿名使用者
指向地址啊。
比如a是指標
*a 就是指a地址所存的數字。
呼叫其中數字。
17樓:匿名使用者
指標是一種存放另一個變數的地址的變數。
比如申請一個整形變數 int a = 128; 再申請一個指標讓這個指標指向變數a.
int *p;
p = &a; //取a在記憶體中的地址,把a的地址賦給p。這樣p就指向了變數a的地址。
18樓:奧·備侖思
指標,首先從概念上是「變數」。
它存放的是記憶體地址,而不是具體資料。
19樓:天涯海角情緣在
怎麼說指標的作用呢?通俗點講就是當你用上指標的時候,你到目標地的就會有捷徑了,移動性強,可操作性很大,對於資料的刪除、插入、編輯都很方便,換成其他的,則比較麻煩。
20樓:匿名使用者
c語言中指標的作用是什麼?啊這個問題還不好一句回答。這是c本身是低階語言,能夠操動記憶體的特效決定的,早期的時候對計算機說這就是效率。
現在好像不是這樣說了,都說指標很危險,特別是在目前複雜作業系統下。
要是說作用是什麼?是求高效的低階語言特有的特質。
21樓:匿名使用者
指標啊,用來取一個元素在記憶體中的地址
c語言中「指標」和「指標變數」的區別是什麼??
22樓:大野瘦子
1、概念不同
「指標」是概念,「指標變數」是具體實現,指標也是一個變數,所以需要進行定義,而對於指標的定義,與一般變數一樣。
2、 存放地址不同
一個變數的(記憶體)地址稱為該變數的「指標」,通過指標能找到以它為地址的記憶體單元。而指標變數是用來存放另一個變數的地址的(即指標)。
指標和指標變數的關係
1、指標就是地址,地址就是指標。
2、地址就是記憶體單元的編號。
3、指標變數就是存放記憶體地址的變數。
4、指標和指標變數是兩個不同的概念,但要注意的是,通常我們敘述時會把指標變數簡稱為指標,實際他們含義並不一樣。
注:指標裡存的是100. 指標:地址 - 具體。
指標裡存的是地址,指標:指標變數 -可變。
指標的好處:
1、直接訪問硬體
2、快速傳遞資料(指標表示地址)
3、返回一個以上的值返回一個(陣列或者結構體的指標)4、表示複雜的資料結構(結構體)
5、方便處理字串
6、指標有助於理解物件導向
23樓:蓋辜苟
用例子來看一下。
int a=3;
int *p;
p=&a;
現在來看一下。a=3這個式子先解釋一下
等式右邊是常量,左邊是變數。
同理的p=&a,左邊的是指標變數,右邊的是指標
指標的基本概念:為了區別記憶體的不同位置,記憶體被分成位元組,記憶體的全部位元組順序地賦予一個稱為地址的編號。程式中的變數將在記憶體中佔據一定的記憶體位元組,在這些位元組中儲存的資料資訊稱為變數的內容。
一個變數佔用連續的若干個記憶體位元組時,最前面的一個位元組的地址就作為該變數的地址。指標就是記憶體地址,是變數的地址,或函式的入口地址。變數的地址在程式執行時,起著非常重要的作用。
當計算機在計算含有變數的表示式時,計算機按變數的地址取出其內容,並按變數的地址將計算結果存入到變數佔據的記憶體中。
如**: int x=l; x=x+2; 其中語句「x=x+2;」中的第一個x涉及到變數x佔據的記憶體,第二個 x是引用變數 x的內容。該語句的意義是「取x的內容,完成加上2的計算,並將計算結果存入變數x佔據的記憶體中。
」指標變數和它所指向的變數:在c語言中,地址也作為一種值,能被儲存、比較、賦值,並稱地址資料為指標型別,而稱儲存地址值的變數為指標變數,簡稱指標。c程式可用運算子&取變數的地址,如表示式&x的值就是變數x的地址。
程式除能按名引用變數外,也可利用變數的地址引用變數。按變數名引用變數稱為直接引用,而將變數a的地址存於另一變數b中,藉助於變數b引用變數a稱為對a的間接引用。
定義指標變數的一般形式為: 型別 * 指標變數名; 或 型別 * 指標變數名=初值表示式; 其中,指標變數名是識別符號,指標變數名之前的符號「*」,表示該變數是指標型別的。而最前面的「型別」,表示該指標變數能指向變數或函式的型別。
初值表示式是一個地址表示式,如表示式中有某變數的地址表示式,則這個變數應是前面已定義的。
在c語言中,當定義區域性指標變數時,如未給它指定初值,則其值是不確定的。程式在使用它們時,應首先給它們賦值。誤用其值不確定的指標變數間接引用其它變數,會引起意想不到的錯誤。
為明確表示指標變數不指向任何變數,在c語言中用0值表示這種情況,記為null。
如 ip= null; 也稱指標值為0的指標變數為空指標。對於靜態的指標變數,如在定義時未給它指定初值,系統自動給它指定初值0。
指標變數取程式物件的(開始)地址值,不能將一個整型量或任何其它非地址值賦給一個指標變數。另外,指標變數對所指向的物件也有型別限制,不能將一個不能指向的物件的地址賦給指標變數。
如有以下定義: int i=100,j,*ip,*intpt; float f,*fp; 以下**如註釋所敘。 ip=&i;/*使ip指向i*/ intpt=ip;/*使intpt指向ip所指變數*/ fp= &f;/*使fp指向正*/ ip=null;/*使 ip不再指向任何變數*/
在電腦科學中,指標(pointer)是程式語言中的一個物件,利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。因此,將地址形象化的稱為"指標"。
意思是通過它能找到以它為地址的記憶體單元。 在高階語言中,指標有效地取代了在低階語言,如組合語言與機器碼,直接使用通用暫存器的地方,但它可能只適用於合法地址之中。指標參考了儲存器中某個地址,通過被稱為反參考指標的動作,可以取出在那個地址中儲存的值。
作個比喻,假設將電腦儲存器當成一本書,一張內容記錄了某個頁碼加上行號的便利貼,可以被當成是一個指向特定頁面的指標;根據便利貼上面的頁碼與行號,翻到那個頁面,把那個頁面的那一行文字讀出來,就相當於是對這個指標進行反參考的動作。
指標是程式設計語言的一個重要概念。指標在c程式中有以下多方面的作用:
利用指標能間接引用它所指的物件。
利用各種型別的指標形式引數,能使函式增加描述能力。
指標與陣列結合,使引用陣列元素的形式更加多樣、訪問陣列元素的手段更加靈活。
指標能用來描述資料和資料之間的關係,以便構造複雜的資料結構。當一個資料a要關聯另一個資料b時,在資料a中增加一個指向資料b的指標就可實現資料a關聯資料b。結合系統提供的動態分配儲存設施,又能構造出各種動態資料結構。
c語言中指標加減問題,求解答C語言中指標問題真的求,搞不懂,求解答?
首先 float a 10 p,q p a 4 q a 7 那q p 2 a 4 與a 7 之間有兩個元素 這裡就不對了,q p 3 不是等於2,可以用printf d q p 看看。p 3 p 12 是地址按 位元組 排列的位置差,表示p 3和p之間有12個位元組 q p 3 表示q和p之間有3個...
C語言中的空指標是什麼意思,C語言中,空指標NULL會佔記憶體嗎?多少位元組
這樣一看才知道大家對空指標的概念如此渾濁哦 首先 void 這不叫空指標,這叫無確切型別指標.這個指標指向一塊記憶體,卻沒有告訴程式該用何種方式來解釋這片記憶體.所以這種型別的指標不能直接進行取內容的操作.必須先轉成別的型別的指標才可以把內容解釋出來.還有 0 這也不是空指標所指的內容.0 是表示一...
C 語言中,指標的英文單詞是什麼
指標英文單詞是pointer item不是縮寫,就是item,專案的意思。操作方法如下 1 函式指標的宣告 typedef void p const char name void p2 const char name 這兩種定義方式都是可以的。2 函式指標的使用,如下圖所示。3 函式指標的overl...