問題タブ [ansi-c]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1216 参照

c++ - 「ANSI C」または「ANSI C++」は今日でも意味がありますか?

前回確認したところ、ANSI C でコーディングしているということは、「これは C99 準拠のコードで他に何も含まれていない」ということと同じでした。C11 と C++11 では、この違いはまだ残っていますか? それでも何か意味があるのでしょうか?

0 投票する
1 に答える
13125 参照

c - char* var; の違い および char *var;?

次の間に違いがあるかどうか疑問に思っています:

それとも単なる好みの問題ですか(間隔)?

0 投票する
3 に答える
105284 参照

c - 文字列の終了 - char c=0 vs char c='\0'

文字列を終了するとき、「null」(ASCII 0) バイトは であるため、論理的char c=0には と同等のように思えますが、通常は代わりに行う傾向があります。これは純粋に好みの問題ですか、それともより良い「練習」であるべきですか?char c='\0'0'\0'

好ましい選択は何ですか?


編集: K&R 次のように述べてい'\0'ます。'\0'00

0 投票する
5 に答える
13588 参照

c++ - C 演算子の優先順位と結合性を定義するのは誰ですか?

序章

C/C++ のすべての教科書には、次のような演算子の優先順位と結合規則の表があります。

演算子の優先順位と結合規則の表

http://en.cppreference.com/w/cpp/language/operator_precedence

StackOverflow に関する質問の 1 つに、次のような質問がありました。

次の関数が実行される順序は次のとおりです。

f1() * f2() + f3();
f1() + f2() * f3();

前のチャートを参照すると、関数には左から右への結合性があると自信を持って答えたので、前のステートメントでは、両方の場合で次のように評価されます。

f1() -> f2() -> f3()

関数が評価されたら、次のように評価を終了します。

(a1 * a2) + a3
a1 + (a2 * a3)

驚いたことに、多くの人が私が完全に間違っていると言いました。それらが間違っていることを証明しようと決心した私は、ANSI C11 標準に目を向けることにしました。演算子の優先順位と結合性についてほとんど言及されていないことに、またしても驚かされました。

質問

  1. 関数は常に左から右に評価されるという私の信念が間違っているとすれば、関数の優先順位と結合性に関する表は、実際には何を意味するのでしょうか?
  2. ANSI でない場合、演算子の優先順位と結合性を定義するのは誰ですか? 定義を行うのが ANSI である場合、演算子の優先順位と結合規則についてほとんど言及されていないのはなぜですか? 演算子の優先順位と結合性は、ANSI C 標準から推測されますか、それとも数学で定義されていますか?
0 投票する
2 に答える
87 参照

c - -> とドットの違いは何ですか

C プログラムで、構造体を定義するとき。

どのような状況で「->」と「.」を使用するか ?

例えば

いつ使用barbar.barし、いつ使用しbarbar->barますか?

0 投票する
2 に答える
54 参照

c - 関数 invertNumerSubstrings が機能しませんでした

私はAnsi Cでこの問題を抱えています

3 以下を考慮して、デコードごとに 20 文字の文字列の配列を受け取る関数を作成します。左から右に読むと、数字はそこから投資する文字数を示します (投資する文字の間に数字を入れることができ、その意味で共通文字と見なされます)。
b. 数字文字は、文字列の最初の文字を反転したものに置き換える必要があります。

例。文字列 aj5pr2*dfkl3abc2qwe1azk は ajd*2rpfklcbawqeazk でなければなりません

表記法とポインター演算を使用する

このプログラムにはコンパイル エラーはありませんが、動作しませんでした

0 投票する
1 に答える
429 参照

c - char *fptr = NULL, *field; の意味を理解するには?

次の表現の意味を知りたいです。

ありがとう!