#include <stdio.h>
int main()
{
printf(5 + "abhishekdas\n") ;
return 0 ;
}
プログラムの出力はhekdas
. それはどのように機能していますか?エラーを表示するべきではありませんか?関数5 + "abhishekdas"
内のようなものをどのように書くことができますか?printf
5+"abhishekdas\n" ==> "abhishekdas\n"+5 ==> &"abhishekdas\n"[5] ==> "hekdas\n"
5+"abhishekdas"
&"abhishekdas"[5]
は、配列の 6 番目の要素のアドレスである と同等です。
"abhishekdas"
文字列リテラルです。その型は配列型です。すべての配列オブジェクトと同様に、式で評価されるとポインター型に変換されます。単純5+"abhishekdas"
なポインター演算も同様です。