C指標交換問題,c語言的指標交換問題

時間 2022-04-22 21:45:29

1樓:高金山

main()

; char *pt;

pt=str[0];//指標p指向motherstr[0]=str[1];//指標str[0]指向fatherstr[1]=pt; //指標str[1]指向motherfor(i=0,i<2;i++)

printf("%s\n",str[i]);//這裡交換成功//這裡str是指標陣列,str[0],str[1]都是指標,交換後他們指向了不同的地方

//所以,看起來交換是成功的,而實際上mother和father的儲存位置都沒有改變

} main()

2樓:雷

你這個交換是交換指標所指向的a和b的記憶體地址,讓a和b的記憶體地址改變了,並沒有改變a和b的值。

p指向a的內處地址,*p指向a的內容。

給改為*pt=*p;*p=*q;*q=*pt;

這樣就沒錯咯!!

3樓:

main()

4樓:匿名使用者

char *str[2]可以理解為指向指標的指標

pt=str[0],str[0]=str[1];str[1]=pt; 這句話已經修改指標的值了

5樓:匿名使用者

上面的是值交換

下面的只是指標地址交換,所指記憶體並沒有發生改變

c語言的指標交換問題

6樓:

//c語言的引數傳遞方式是傳值。第二個改為:

#include

void swap(int *a,int *b) //交換a,b的值,不起任何作用。應該交換a,b所指物件的值。

main()

7樓:

樓上都直接交換變數了吧,樓主好像是想交換指標指向而不是交換變數的哦,要這樣

#include

void swap(int **a,int **b)main()

8樓:齋傲雲

在你的主函式裡你定義了兩個指標變數p和q,分別指向i和j,在你的swap函式裡你又定義了兩個指標變數a和b,p和q,a和b,都是存著i和j的地址,這裡t=a;a=b;b=t,只是把a和b所指向的記憶體互換了,而本身p和q所指向的記憶體是沒有變化的,所以你主函式裡printf("%d %d\n",*p,*q);還是3和5!

你可以把t=a;a=b;b=t修改成*t=*a;*a=*b;*b=*t,這樣你是對i和j的值互換!

c語言中指標交換的問題

9樓:莫愛

第一題只是交換了行參,第二個是真的交換了了值。第一題傳遞了兩個地址值過去,儲存到這個函式作用欲範圍內,在這個範圍內做了交換,返回了一個地址值,就是指向5那個地址。祝函式內的兩個指標值在記憶體中並沒有變幻

10樓:匿名使用者

一樣的! 只是第一題返回的是一個值,而第二題是列印出交換後的值。仔細分析就能看出來。:)

11樓:手機使用者

int a[5],i,k,*p=a,min,max,p1,p2;

這句 p1 p2 是整數啊 不是指標 怎麼*p1 *p2這樣的用法啊?

#include

main()

k=*p1;

*p1=*p2;

*p2=k;

for(i=0; i<5; i++)

printf("%2d",*(p+i));

}是否可以解決您的問題?

c語言指標交換問題!!高手求解!!!**等!!!

12樓:范德薩了就

你也標示下,哪個是第一,第二,第三啊,雖然沒看題,不過肯定是指標和指標指向的值的問題。

13樓:

if(*s<*t)

if(*s<*t)

看交換的內容,一個是地址交換,一個是值進行交換。

答這麼好,不給採納嗎?

14樓:斬不斷的風

第二題是改變一級指標指向的東西,在函式中如果要改變一級指標的值,引數得是二級指標或者引用型別的指標。

15樓:禮職

第一題和第三題 交換值全部變了,第二個沒變.......表示沒看懂你在表述什麼東西

16樓:慈瓃

形參中 指標指向的值可變, 但是 實參指向的地址不變

c語言指標交換資料問題。下面的交換程式不理解。謝謝解答

17樓:風若遠去何人留

**是錯誤的

你的疑惑是對的

#include

void swap(int *p1,int *p2)int main()

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

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

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

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

C語言中,怎麼交換指標陣列裡的值

程式主要通過冒泡法使用函式strcmp比較兩指標所值字串大小,通過臨時指標交換兩指標指向,實現字串排序,如下,程式功能,從小到大排序10個字串 include include void bubble sort char a,int n int main int argc,char argv 儲存10...