前提・実現したいこと
投げた配列を整頓してくれる関数(sort関数のようなもの)を教科書を見ながら作っています。教科書では配列がint A[]の形で表記されていました。一番上に記したコードで、関数に投げる配列は参照になっていません。
しかし後にvectorで配列を宣言して同様の関数を作ってみたところ、参照にしないと投げた関数は並び替えた形にはなりませんでした。
本来参照にしないと関数に投げた値は変化しないままだと思うのですが、なぜint A[]の配列は参照せずとも中身の配列が入れ替わったのでしょうか?
該当のソースコード
C++
1void bubbleSort(int A[]){ 2 //配列を並び替える操作 3} 4 5int main(){ 6 int A[5] = {5,4,2,1,3}; 7 bubbleSort(A); 8//配列を全て出力{1,2,3,4,5} 9 10return 0; 11}
C++
1void bubbleSort(vector<int> &A){ 2 //配列を並び替える操作 3} 4 5int main(){ 6 vector<int> A(5); 7 A = {5,4,2,1,3}; 8 bubbleSort(A); 9//配列を全て出力{1,2,3,4,5} 10 11return 0; 12}
C++
1void bubbleSort(vector<int> A){ 2 //配列を並び替える操作 3} 4 5int main(){ 6 vector<int> A(5); 7 A = {5,4,2,1,3}; 8 bubbleSort(A); 9//配列を全て出力{5,4,2,1,3} 10 11return 0; 12}
試したこと
int A[]に参照&を付けて実行してみましたが、int A[]に参照は付けられないようでエラーになりました。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/23 07:34