C言語を学習する際に遭遇するscanf関数に関するいくつかの問題

C の初心者として最初に遭遇する関数は、古典的な Hello world である入力と出力です。

しかし最近、データ型変換を学習しているときに問題に遭遇しました。

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>

int main(){
    int a1,a2;
    scanf("%d",&a1);
    a2 = scanf("%d",&a2);

    printf("a1:%d\n",a1);
    printf("a2:%d\n",a2);
	return 0;
}

scanf関数に戻り値を追加する場合と追加しない場合に違いはありますか?

たとえば、10 を 2 つ入力して得られる a1 a2 の構造は次のようになります。

誰か答えてもらえますか?どうもありがとう

-------------------------------------------------- ------------------

この問題は解決されており、scanf と printf の戻り値は両方とも入力 (出力) 要素の数を参照します。

printf("%d", printf("%d", printf("%d", 43)));


// 最后的结果是
4321

もっと直観的に言えば、

printf("%d\n", printf("%d\n", printf("%d\n", 43)));

// 最后的结果是
43
2
1

(このトピックはステーション B での Peng Ge の C 言語教育から来ています)

-------------------------------------------------- ------------------

概要: 理解できない関数に関連する問題が発生した場合は、C リファレンス - cppreference.comなどの Web サイトで検索できます。一つ言えるのは、C は Python よりも実際には難しいということです。

おすすめ

転載: blog.csdn.net/m0_57099194/article/details/124310376