No.1ベストアンサー
- 回答日時:
どこで、誰から聞きました?
その説明では、わたしでも分らないかも。
scanf は、
・標準入力から
・書式文字列で指定した内容に沿った文字列を読み込んで
・書式に設定された値に変換し
・対応するポインタを示す先に書き込む
関数です。
%d は、整数の文字列を読み込んでintに変換し、 intへのポインタが示す領域に書き込むものです。
int a;
scanf ("%d",a); /* × : a は int であって ポインタではない */
/* 正確には、読み込んだ値が変数aに入ることはめったに無いし、エラーが出るかもしれないけど出ないかもしれない */
scanf ("%d",&a); /* ○ : &を付けることで、aへのポインタを求める */
scanf ("%d",&intnger[i]);
の場合、配列intngerに[i]を付けた「intnger[i] 」は int型変数と同じ扱いになります。
つまり、上記の変数a と同じで、&を付けて 「intnger[i] へのポインタ」を求める必要があります。
ここで「(多くの場面で) 配列名だけ使うと、先頭要素へのポインタになる」というルールを使います。
このとき
&intnger[i] == (intnger + i )
ですから、
scanf ("%d",intnger+i);
と書けます。
ここで、i=0を考えると
scanf ("%d",&intnger[0]);
と
scanf ("%d",intnger+0);
とは同じになるし、ポインタ+0 == ポインタ ですから
scanf ("%d",intnger);
も同じになります。
ただ、私なら、 scanf ("%d",intnger);
と書くと、配列全体に複数の値を読み込んでいるように見えるので、
scanf ("%d",&intnger[0]);
と書いて、意図をはっきりさせます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語 配列とポインタについて 2 2022/06/02 11:53
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セグメントエラー
-
C言語のポインタに直接アドレス...
-
init関数の意味
-
fopne で失敗する原因
-
C言語でのconstを返す関数
-
c言語で任意のファイルから読み...
-
TCHAR文字列内の検索について
-
main(int argc,char **argv[])...
-
cv::Mat から vectorにコピー
-
構造体とfscanf
-
[C#] DeviceIoControlの変数の型
-
VB6でのgethostbyaddrの使用方...
-
bsearch関数の呼び出しで
-
ExcelVBAでのkernel32(64bit)
-
基本アルゴリズムの『返す』の...
-
ハンドルはポインタか
-
関数ポインタの利点
-
C++で関数ポインタから関数名を...
-
パスからファイル名を抽出
-
エラーの意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインタに直接アドレス...
-
C言語の関数と配列に関する質問
-
戻り値で構造体を返すことは可...
-
fopne で失敗する原因
-
init関数の意味
-
Run-Time Check Failure #3とい...
-
LPSTR型の初期化について
-
セグメントエラー
-
アプリを32bitから64bit移行
-
コンストラクタでnewを失敗した...
-
ExcelVBAでのkernel32(64bit)
-
Cで作成したDLL関数をVBから呼...
-
ハンドルはポインタか
-
DLL<->VB間での受け渡し(文字...
-
C言語でのconstを返す関数
-
ポインタについて
-
参照型で受け取った引数をポイ...
-
TCHAR文字列内の検索について
-
デバイスハンドルとは?
-
基本アルゴリズムの『返す』の...
おすすめ情報