C語言陣列問題

時間 2022-07-12 08:45:03

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