char a[] = "hello%d\n%dworld";
printf(a, 2, 3);
//输出:
//hello2
//2world
事情的起因是使用printf("\033[0;47;30m");
改变命令行字体背景和颜色的时候,室友提起能否让用户改变字体颜色。因为那需要改变printf("");里双引号中的内容,我就下意识觉得不行,但又转念一想,想到了这种方式,实验了一下发现真的可行。感觉发现新大陆了一样。
发现之后看起来挺理所当然的,但是之前真的完全想不到可以这样用。
这也是先学printf后学函数带来的思维盲区,如果先学习了函数那printf();里的那个字符串就自然是一个普通的参数而已,那自然可以用字符串(字符数组)变量来替代了。