#include
int main()
{
char *s[] = { "knowledge","is","power"};
char **p;
p = s;
printf("%s ", ++*p);
printf("%s ", *p++);
printf("%s ", ++*p);
return 0;
}
(一)就是力量
(B) nowledge nowledge s
(C)较低
(四)诺言知识是答案: (B)
说明:让我们考虑第一个printf()中的表达式++ * p。由于前缀++和*的优先级相同,因此关联性成为图片。首先评估* p,因为前缀++和*都是从右到左的关联。当我们将* p加1时,它开始指向“知识”的第二个字符。因此,第一个printf语句打印“ nowledge”。
让我们考虑第二个printf()中的表达式* p ++。由于后缀++的优先级高于*,因此首先评估p ++。并且由于它是psotfix ++,因此在此表达式中使用了p的旧值。因此,第二个printf语句打印“ nowledge”。
在第三个printf语句中,使用p的新值(由第二个printf更新),并且第三个printf()打印“ s”。
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。