答えて
これはscanf関数の呼び出しです。最初の引数は、形式「%d%d\n
」です。これは、「2桁の10進数とそれに続く改行が必要です」という意味です。
各%d
は、メモリに結果を書き込むと予想しています。 &x
と&y
は、基本的には「x
とy
変数のアドレスに書き込みます」という意味です。
そうscanf
がx
の実際の場所へのアクセス権を持っているし、それに書き込むことができませんので、彼らはむしろ値(x
)よりアドレス(&x
)によって渡されています。
リンクはsscan機能に移動します。 –
は、コンパイラはまあ
をコンパイルする方法を、私は今その権利の対象とならないんだけど、あなたが\n
文字について混乱している場合、私はあなたのためにそのmystryを解決することができます。
とformat specifiersの間に任意のcharを入力すると、入力内で区切り文字として扱われます。
scanf("%d%d\n",&x,&y);
それが意味し、2 NUMSを入力した後、あなたはscanf
を完了するためにreturn
キーを打つためにきました。
scanf("%d\n%d\n",&x,&y);
それが意味し、各NUMを入力した後、あなたはscanf
を完了するためにreturn
キーを打つためにきました。今
、&x, &y
一部について:
ユーザ入力がメモリに格納する必要があるため、あなたは、ユーザー入力を保存する変数のaddress
をPaaSの必要があります。
この例では、最初のnumをxに格納します。したがって、xのアドレス、すなわち&x
を渡します。
私はあなたがそのアイデアを得ることを願っています。
コンパイラがどのようにコード行をコンパイルし、それを私に説明するのか誰かが説明できますか?
- それは(多分部分で)メモリにソースファイルをロードします。
- レクサーは、行をプリプロセッサトークンに分割します。
- プリプロセッサは適切なマクロで
scanf
,x
およびy
を展開しようとします。これらは定義されていないため、これはNOPです。 - プリプロセッサのトークンはトークンに変換され、パーサーはその行を解析します。
- これは、以前に宣言されたシンボルに
scanf
、x
、およびy
を一致させる名前検索を行います。 - これは、上記の行を抽象構文ツリーまたは他の形式の中間表現に変換します。
- 型チェックしています。
- インライン展開などの高度な最適化を行います。
- バックエンドは中間表現をマシンコードに変換します。マシンコードに対してより多くの最適化が行われる可能性があります。
- 結果は後でリンカーに渡されるオブジェクトファイルに書き込まれます。
もちろんこれは非常におおよそのものであり、このプロセスには多くのバリエーションがあります。
これらのうち、どの部分がわかりませんか。
./a.out
は10を入力して、20を入力し、再びキー
を入力してEnterキーを押して
gcc test.c
ランのようなコンパイルtest.cのファイルとして
#include <stdio.h>
int main(void){
int x=0,y=0;
scanf("%d%d",&x,&y);
printf("x is %d, y is %d",x,y);
}
をこのプログラムを保存しますEnteを押すRキー
出力は次のようになります
×10、yは私はあなたが
をやっても代わりのprintf("x is %d, y is %d",x,y);
それらの値の印刷にミスをやっているかもしれないと思う20
されています
printf("x is %d, y is %d");
これは、garvase値を与えるでしょう
- 1. TypeError:open()は予期しないキーワード引数 'buffering'を受け取りました
- 2. Doctypeの予期しないトークンからエラーを受け取ります
- 3. ストアドプロシージャがmysqlのPHPコードで動作しないxmlを入力として受け取ります
- 4. Javascript - コードの入力エラーの予期しない終了
- 5. クラスの初心者向けプログラミング、「位置0のJSONで予期しないトークン」を受け取ります
- 6. チューリングマシンから入力を受け取る方法はありますか?
- 7. Pythonでユーザー入力としてイメージを受け取る方法
- 8. 予期しないCコード出力
- 9. Java SQLは6バイトを予期し、0エラーを受け取りました
- 10. VB.net/Oracleは、テキストボックス入力からデータグリッドへの入力を受け取ります
- 11. RubyでSTDINからの入力を受け取ります
- 12. Twilio Gather、遅延なしでユーザーの入力を受け取ります
- 13. 「とは、入力の予期しない終わり入力の終わりを期待」パーセク
- 14. 入力から予期しないNameError()
- 15. マイクで音声の入力を受け取る方法 - python
- 16. Actionscript入力を受け取りIntと比較します
- 17. Cプログラムは標準入力を受け取ります
- 18. -webkit-transition-propertyはSafari 3.1.2(Windows)で予期しない値を受け取ります
- 19. ユーザからの行列入力を受け取りました
- 20. nodeJSで簡単な1行のユーザー入力を受け取る方法は?
- 21. cinが入力として入力を受け付けない
- 22. NSStatusBarのNSDatePicker NSSMenuItemは入力を受け取りません
- 23. Arduinoは入力ピンに電源がない場合でも入力を受け取ります
- 24. Yii2コンソールコマンドでユーザー入力を受け取ります
- 25. スキームでユーザー入力を受け取り、それを使用する方法
- 26. DjangoコマンドがTypeErrorをスローします:handle()が予期しないキーワード引数を受け取りました
- 27. 予期しない動作が、私は次のコードを実行
- 28. thymeleafテーブルから入力値を受け取る方法は?
- 29. whileループでは、fgets()は改行を入力として受け取ります。
- 30. C++でユーザーの入力に「y」または「n」だけを受け入れる方法はありますか?
あなたはどの部分を理解していませんか? –