C語言中,關於指標的基礎問題,望有高人指點

2022-03-05 12:37:20 字數 3025 閱讀 4304

1樓:紫雲紫天

指標也是一種資料型別,所以在c中也必須先定義在使用。和其他的定義一樣如整型(int),指標型別的也可以在定義時賦值,就是這樣int *p=&i1,但是如果去掉型別說明int該語句不成立。p=&i1是賦值語句,使用前必須定義p為指標型別。

int *p=&i1是宣告語句,包含兩層一定義p為整型指標,二將p賦值為&i1。你可以比較著int a=1000;和a=1000;這兩個語句不要被*和&弄暈了!

2樓:匿名使用者

int *pi1=&i1,*pi2=&i2;//用整型變數的地址給基型別為整型的指標變數賦值

pi1=&i3;

它們的作用是一樣的,都是將變數的地址賦值給指標變數int *pi1=&i1,這個語句有兩個作用,1 定義pi1是整型指標,2把i1變數的地址給pi1

而pi1=&i3這個語句只有一個作用,把i3變數的地址給pi1,也就是前面要有pi1的定義宣告

否則會出錯。

3樓:youtube時尚精選

其實,就是想問下的是為什麼pi1=&i3裡面的pi1中和上面的*pi2=&i2不一樣呢,就是pi1中的為什麼沒有「*」?這是什麼原因?

pi1=&i3 之所以能這樣賦值是因為之前有定義

*pi2=&i2 這樣獨立成句是不正確的 一般要int *pi2=&i2 意義是定義指標 並初始化賦值。

4樓:匿名使用者

指標定義的時候要:int * p;

賦值的話就直接 p = &i1;

如果是即定義又賦值: int *p = &i1;

分開就是:

int *p;

p = &i1;

5樓:匿名使用者

開始是定義為指標變數 定義為指標變數的符號為* 其實int *p1=&i1就等於int *p1;p1=&i1

在變數定義時需要指出變數型別;int *p1=&i1的*是定義用的指出變數型別;

其實初學是這樣 用多了就行了 剛開始的時候分開寫以後慢慢就會了 c語言指標很多 這只是最簡單的 呵呵

關於c語言指標的問題!!希望詳解。

6樓:匿名使用者

1,p表示指標,*p表示指標的解引用,p是一個計算機記憶體中的地址,而*p是一個值,你的認為是對的,int*p=&a是一種初始化,相當於兩條語句int *p(宣告);p=&a(初始化);宣告時初始化是安全考慮。不然p會亂指

c語言關於指標的基礎知識

c語言的指標有什麼優缺點?

7樓:愛夏的你呀

1、指標的優點

是標識一塊記憶體。電腦記憶體上的每一個位元組都具有一個編號,稱為地址(可以簡單理解為指標),任何讀寫記憶體的指令都必須攜帶地址資訊,否則電腦不知道讀寫那塊記憶體。

不管程式是用什麼語言寫的,要執行資料和**必須駐留記憶體,cpu要執行指令必須有一個「指標」程式計數器指向記憶體的**塊,如果某個指令要操作記憶體資料,該指令必須攜帶額外的地址資訊。

2、指標的缺點

指標可以操作任何東西,所以指標很靈活、很強大,但也引入了複雜性。

擴充套件資料

1、指標利用地址,它的值直接指向(points to)存在電腦儲存器中另一個地方的值。由於通過地址能找到所需的變數單元,可以說,地址指向該變數單元。

2、輸出一串字元時,只需要知道它的第一個字元的地址,就可以將這個字串輸出,而第一個字元的地址,可以用指標儲存。所以有n個字串時,就可以用n個指標來儲存。

3、為了儲存一個資料在記憶體中的地址,就需要指標變數。因此指標是程式資料在記憶體中的地址,而指標變數是用來儲存這些地址的變數。

8樓:文化廚子

指標是c語言只所以如此成功的重要原因之一,當然任何事物,往往都是一體兩面的,本質上是一體,看上去是兩面,關鍵是要活學活用,沒比較過分的區別優點、缺點。

c語言主要是針對硬體及系統底層程式設計的,在針對硬體及系統底層程式設計中,對資料的靈活性要求較高,換句話說資料的意義需要經常變動,而資料型別決定了資料的意義,指標一個重要作用是實現對資料型別的轉換,比如要將機器碼為0x3f8ccccd表示成浮點數:

#include

int main()

指標這種能改變資料上下文環境的能力是非常有用的, 比如檢測cpu所支援的儲存順序。

#include

char endian(void)

int main()

如果c語言沒有指標,當然可以想出其它的方法,但是遠沒有指標方便。

指標的缺點,可能對於初學者來說 ,往往不容易理解,而且使用指標程式設計經常會出現一些莫名其妙的錯誤,而且在平時使用c語言進行應用程式開發時,好像指標真的不怎麼有用,這些都不是問題,關鍵是看個人學習c語言的用處,做什麼開發,上什麼專案。

9樓:51cto學院

記憶體對齊的緣故。

p_buf 作為一個指標,它的值是記憶體的某個位元組的地址。

如果想要把 p_buf 強制轉換成一個 unsigned int*型別的指標,

需要滿足一個必要條件,就是 p_buf 的值必須能夠被4整除。(之所以是4,是因為 unsigned int 是要佔4個位元組的)。

10樓:匿名使用者

說那麼多幹什麼勒..

指標我覺得是畫蛇添足..沒有什麼好與不好.

可的情況還是需要用指標,不過覺得不多.

c語言指標問題,麻煩高人指點一下!

11樓:勞傷痕

#include

#include

void main()

printf("\n");

printf("最小字串:%s\n",str[n]);//輸出最小字串}

12樓:

#include

#include

main()

puts(cmin);//輸出最小的字串} 能夠執行,希望能滿足你的要求...

C語言中指標與陣列有什麼關係,C語言中,指標和陣列的區別和聯絡

c語言中陣列和引數可以通用,陣列有一個基址,c中用指標指向它,計算陣列元素地址的時候,是基址 元素位元組數 元素序號 1 陣列名bai代表陣列在記憶體du中的首地址。指標可zhi以儲存一個地址dao,也即指向某地回址。在c中,答 對於某地址的訪問有兩種方式 1.直接訪問,如用變數名進行賦值等 2.間...

C語言指標的作用有哪些c語言中用指標的好處有哪些?

指標的用途非常廣泛,比如如果你想通過函式改變一個變數的值,就得用指標而不能用值傳遞。還有在很多時候變數,特別是物件的資料量實在太大,程式設計師就會用指標來做形參,只需要傳遞一個地址就行,大大提高了效率。簡單地說指標就是指向變數和物件的地址。基本說明 1 在計算機中,所有的資料都是存放在儲存器中的。一...

有關C語言中檔案讀取的問題,關於C語言中的檔案讀取問題

search好像是要從檔案裡讀資料,然後輸出是吧,為什麼只看到了開啟檔案的部分,沒有看到讀資料的地方呢?開啟檔案之後就輸出了?關於c語言中的檔案讀取問題 需要一個fclose 函式,因為你的文字文件內東西太少沒有裝滿快取區,所以沒有輸出,使用fclose函式就可以把緩衝區內最後剩餘的資料輸出到磁碟檔...