4
#include <stdio.h>

int main()
{
    printf(5 + "abhishekdas\n") ;
    return 0 ;
}

プログラムの出力はhekdas. それはどのように機能していますか?エラーを表示するべきではありませんか?関数5 + "abhishekdas"内のようなものをどのように書くことができますか?printf

4

2 に答える 2

8
5+"abhishekdas\n"  ==> "abhishekdas\n"+5 ==> &"abhishekdas\n"[5] ==> "hekdas\n"
于 2013-09-28T11:18:44.443 に答える
4

5+"abhishekdas"

&"abhishekdas"[5]は、配列の 6 番目の要素のアドレスである と同等です。

"abhishekdas"文字列リテラルです。その型は配列型です。すべての配列オブジェクトと同様に、式で評価されるとポインター型に変換されます。単純5+"abhishekdas"なポインター演算も同様です。

于 2013-09-28T11:20:20.817 に答える