任何人都可以解释 printf 语法的变化......我对其中的一些感到困惑,比如
printf(5+"hello my friend");//i have problem this addition of 5
printf("hello""my""friend");//i have problem with double apostrophe
这些遵循什么样的 printf 原型?这与动态链接有关吗?任何人都可以展示一些其他奇怪的 printfs 并解释它们。
通过指向 a 的指针访问 C 中的字符串char
(有关更精确的定义,请参见 H2CO3 的注释)。如果添加5
指向 a 的指针char
,则字符串会在 5 个字符后开始。于是5+"hello my friend"
点到" my friend"
,跳过"hello"
。
当 C 编译器看到两个字符串之间没有任何内容(除了可能的空格)时,它会将它们视为单个字符串。这使得将长字符串分成多行变得更容易。所以编译成与or"hello""my""friend"
完全相同的东西"hellomyfriend"
"hello"
"my"
"friend"
这些都与 没有任何关系printf
,而与字符串有很大关系。