私はこの質問に来て、この行を見ます
printf(&c[i]);
知りたいのですが、これは有効な構文ですか? 書式指定子なしで文字列/文字列リテラルを出力しても、未定義の動作や制約違反%s
は発生しませんか?
そして、これが有効な構文である場合、どのような目的で使用されますか?
このコードをコンパイルしました
#include <stdio.h>
int main()
{
char *c = "Hello World";
printf(c);
printf("\n\n");
printf(&c[0]);
return 0;
}
そして、出力で警告/エラーを出さずにコンパイルします
Hello World
Hello World