C語言中的指標問題

2023-02-04 06:10:06 字數 827 閱讀 3360

1樓:匿名使用者

你這個swap無法完成交換的功能。

因為指標包含某種資料型別的地址。

你函式中的p=p1,表示p指向p1所指向的資料。

現在p和p1都指向一個資料(1)。

p1=p2之後p1和p2指向一個資料(2),p仍然指向資料(1)。

p2=p之後p和p2指向一個資料(1),p1仍然指向資料(2)。

你這樣做只是把指標的指向換來換去,並沒有改變真實資料的內容。

而*p=*p1就不同了,它表示把p1指向地址的資料內容放到p指向的地址,這樣才有資料的改變。

2樓:匿名使用者

void swap(int *p1,int *p2)在交換的過程中,是值在交換,然後通過指標返回到函式。這是按照地址傳遞。

void swap(int *p1,int *p2)這個在交換的是地址,也就是說你是交換了地址,但是地址那個地方存放的值是沒有改變的,所以你在使用這個函式的時候更本就沒有交換這兩個數。

不知道你聽明白了沒有?

3樓:

大哥,我佩服你的研究精神,不過我要糾正一下,void swap(int *p1,int *p2)裡的p1,p2是

swap(pointer_1,pointer_2);

傳遞近來的指標pointer_1,pointer_2void swap()

這裡面什麼指標都沒傳遞進來,返回什麼呀?

4樓:匿名使用者

void swap(int a,int b)

你覺得這個 swap 能實現 交換功能嗎??不能對吧,這就是原因了!!!

C語言中的空指標,C語言中的空指標是什麼意思?

int p 47 這個用法是不正確的 這個語句等於下邊的 int p p 47 你直接將指標p的值賦值為47是很危險的 應為如果記憶體中地址為47的地方剛好是某個系統程式或關鍵模組佔據的話你進行下面 p 20 的賦值行為 有可能導致系統直接崩潰哦 是的,不過這很危險。而且cpu的32位保護機制也未必...

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

include int main void max min sz 0 for i 1 ip i printf max d position d n max,j 1 printf min d position d n min,k 1 return 0 c語言指標問題 10 最好貼上完整程bai序 或標...

c語言中指標的作用是什麼C語言中指標的作用是什麼?

指標指向地址,指標的特性就是在地址不變的情況下,可以很方便的修改所指向的內容 最重要的應用有兩個,一是函式引數,二是函式指標函式引數 函式返回值只有一個,如果想回傳多個引數,則必須使用指標函式指標 典型應用就是 函式 callback 簡單地說指標就是指向變數和物件的地址。指標的用途非常廣泛,比如如...