##質問内容
以下のコードでswap関数によってaの配列のアドレスを渡して値を入れ替えるという操作をしているのですが&のマークをつける理由がわかりません。
「苦しんで覚えるC言語」で配列を渡すときはアドレスを渡している。
要素の要素を使うときaは先頭アドレス、[]内の数字はaのアドレスに足し算をしている。
という記述があったため&は必要ない気がするのですがなぜつける必要があるのでしょうか。
##コード
C言語
1#include <string.h> 2#include <stdio.h> 3 4void swap (int *a, int *b); 5 6int main (void) { 7int a[]={1,3,6,4,8,7,5}; 8int parent, L_child; 9//省略・・ 10swap(&a[parent],&a[L_child]); 11//省略・・ 12 13} 14 15void swap (int *a, int *b) { 16int buf; 17 18buf=*b; 19*b=*a; 20*a=buf; 21}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/12 23:13
2021/03/12 23:16
2021/03/12 23:21
2021/03/12 23:36