2016-07-11 9 views
-2

私はCに初心者です、私はそれがここに-を出力する方法方法のchar [] = ARR "OX | - " C言語での作品

char arr[] = "OX|-"; 

printf("%4c",arr[6]); //it prints - 
  1. このラインに出くわしましたか?

  2. |オペレータは、このような形式でどのようなタイプの配列でも動作しますか?

  3. この行はjava、c#などの他の言語でも機能しますか?

+0

これは非常に愚かな質問かもしれません..そして、私はdownvoted .. no problem..atleastは私にアイデアを示唆しています..それは私がそれがどのように " - "を印刷したかを理解することを示唆しています – adi

+2

投稿コードは*未定義の動作*を呼び出します。あなたの最初の質問は、誰もいないところで定義を求めているので、試して答えるのが無意味です。 2つ目の質問は意味をなさない。なぜなら、あなたが投稿した2行に '演算子|'(ビット単位のOR)が使われていないからです。あなたの3番目の質問は、他の言語が同様の挙動を示すかどうかを尋ねているようです。 *その*質問*は答えることができます:いくつかは、いくつか、いくつかはないかもしれません。 – WhozCraig

+0

"*印刷方法 - ここ?*"何が起こると思いますか? – alk

答えて

0

これは変数がスタックに格納されるためです。 arr [6]を参照することで、配列の末尾(5バイトのみ)を吹き飛ばし、別のメモリ領域を参照しています。どんなことが起こったとしても、その呼び出しによって何が印刷されるのでしょう。 |ここでは演算子ではありません。

+2

C標準はスタックを強制しません。 – Olaf

関連する問題