1樓:匿名使用者
1、儘管在主函式中採用了指標,但傳遞給子函式的是&x,&y,即在子函式中a收到
的是&x,b收到的是&y,在子函式中交換的是a,b單元的內容,即為&x,&y,並沒
有交換主函式中x,y單元的內容。
2、要想利用子函式交換x,y單元的內容,除了採用指標傳遞之外,子函式中的
交換注意使用*運算子,找到x,y單元的內容才可以。
3、修改後的子函式如下:
void swap(int *a,int *b) *傳值時a收到&x,b收到&y,即a指向x,b指向y*
祝學業進步!
2樓:匿名使用者
你傳進來的是一個指標,而在函式中改變的也是指標,而本身這個函式的引數就是傳值而不是引用,相當於複製了兩個指標,對原來的指標也就沒什麼影響了
修改如下就可以了
void swap(int *a, int *b)或者可以換成引用引數
void swap(int &a, int &b)呼叫的時候這樣呼叫swap(x, y);
3樓:匿名使用者
修改如下:
#include
void swap(int *a,int *b)void main()
4樓:匿名使用者
傳遞的引數並沒有影響引數本身 函式swap()是形參的變化,實參並沒有變化
c語言陣列賦值問題,c語言中如何給陣列定義並賦初值?
靈凍冰晶霜月 我不清楚你想問什麼,不過第二種寫法是對的。char chars 11 是定義了一個初始值為空總數為11的字元陣列。char s c language 定義一個總數為11的字元陣列,但是有初值。注意是11個不是10個,用這種方定義的字元陣列末尾會加一個 0。陣列的賦值通常是使用花括號來表...
c語言陣列中括號的問題,C語言陣列中括號的問題
函式形參中int sorce其實相當於int sorce,所以是指標而不是陣列,不信你可以在函式內改變形參sorce的值,而陣列是不可以重新賦值的。c 是不接受陣列作形參的。 可以在定義陣列的時候直接賦值,那樣就可以省略了列如 int a 陣列定義時必須確定長度,系統才知道給它分配多少記憶體。陣列作...
c語言問題,陣列與指標,C語言陣列和指標的問題
char a computer a指向一個常量字串,常量字串是不能修改的,而你的for迴圈內要修改a指向的這個常量字串,自然要出錯 char a computer 這個a就是個普通陣列了,它的內容是可以改動的,就不會出錯了 因為 a是個指標啊 所以應該賦值賦地址!所以 應該 char a compu...