2016-11-12 7 views
-1

"if(n/10)"の意味を理解できません。それは分裂のようには見えません。Cで「if(n/10)」とは何を意味していますか?

#include <stdio.h> 
    /* printd: print n in decimal */
    void printd(int n) 
    if (n < O) { 
    putchar ('-'); 
    if (n/10) 
    printd(n/10); 
    putchar(n % 10 + '0'); 
+0

私は質問したい質問を投稿できません。だからランダムな質問をコピー&ペーストするだけです。\ – jessie

+1

ランダムなコードを投稿しないでください。それはより多くの問題につながる。なぜ「n/10」は分裂のように見えませんか?それはどのように見えるのですか?部門はどのように見えるのですか? –

答えて

1

Cの条件式では、ゼロは偽とみなされ、その他はすべて真とみなされます。

そう声明:

if (n/10) 

は同じです。つまり

if (n/10 != 0) 

if文の本体は限りnがと9包括の間ではないとして実行されます。これは、C99以降のすべてのC標準(C90は、1つ以上の部門へのインプットがマイナスであった場合、インプリメンテーションによって定義された結果を持っていました)の場合です。

あなたが提供したコードに関しては、構文エラーが多発していますので、何か役に立つものを得る前に、それをきれいにする必要があります。

+0

'n'の値については、1999年以来標準Cには当てはまりますが、それ以前の標準Cではそうではありませんでした。1989年のC標準では、整数除算の丸めが0に向かうかどうかは指定されていませんでした。 – Peter

+0

@Peter、私がCと話すとき、それは一般的に*現在の標準であり、20年前のものではありません。私がTurboCについて心配しないのは同じ理由です:-)しかし、完全性のために、私は少し答えを調整します。 – paxdiablo

+0

私のコメントは完全性のためであった。 – Peter

関連する問題