配列のポインタ(C)
コメントで教えてくださりありがとうございます。
表し方の数を増やしました。
これらは同じ意味
data[i] *(data + i) *(i + data) //New!! i[data] //New!!
i[data]で表せることにビックリした
配列を書き換えられる
int arr[5] = {1,2,3,4,5}; printf("%d\n", arr[2]); //3 data = arr; data[2] = 8; //他の書き方可 printf("%d\n", arr[2]); //8
使ってみる
#include <stdio.h> int main(void){ int *data; int i; int sum = 0; int arr[5] = {1,2,3,4,5}; data = arr; for(i = 0; i < 5; i++){ sum += data[i]; //他の書き方可 } printf("%d\n", sum); //15 return 0; }
上のfor文はこう書ける
for(data = arr; data != &arr[5]; data++){ //data = &arr[0] sum += *data; }
引数に配列を与える
色々書ける
型 hoge(型 配列名[要素数]); 型 hoge(型 配列名[]); 型 hoge(型 *配列名);
ポインタを理解しようと思って解いた問題の解答例がエラーばかりで悲しい