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...