c语言 | 您所在的位置:网站首页 › printf打印字符串指针 › c语言 |
及输⼊输出控制符 printf # include
int
printf ( const
char
* format ,
...); int
printf ( " 输出控制符
⾮输出控制符 " ,输出参数 ); printf :⾃右向左压栈,故从右往左运算 后缀++会在数据⼊栈后⽣效,⽽不是要等到整条语句完全执⾏结束后才⽣效 实例1: # include
void
main ()
{
int i = 2 ;
printf ( "%d,%d,%d,%d,\n" , i ++ , ++ i , i , i ++ );
//3 3 2 2
printf ( "%d\n" , i );
//5 }
解析: printf ( "%d,%d,%d,%d,\n" , i ++ , ++ i , i , i ++ );
从右往左运算:
i ++ 得到 2 ( i = 2 ,后加 1 在整条语句执⾏完才进⾏,这⾥先记下)
i 还是 2
( i = 2 ,原因见上⼀⾏)
++ i 得到 3 ( i = 3 ,先加 1 ,后使⽤)
i ++ 得到 3 ( i = 3 ,后加 1 在整条语句执⾏完才进⾏,这⾥先记下)
所以输出结果为: 3 , 3 , 2 , 2
然后计算刚才的两次后⾃增运算后, i = 5
printf ( "%d\n" , i );
所以,结果是 5 实例2: int a = 5 , b = 2 ; printf ( "%d %d\n" , b = a + 1 , a = a + 1 );
// 结果为 7 6 ⽽不是 6 6 证明了 printf 是从右向左⼊栈 int i = 7 ;
printf ( "%d\n" , i ++
* i ++ );
// 输出结果是: 49 ⽽不是 56 int i = 7 ; printf ( "%d %d %d\n" , ++ i , i , i ++ );
// 输出结果是: 9 9 7 后缀 ++ 的效果会在右侧数据⼊栈后⽣效 printf 中的输出控制符 |
CopyRight 2018-2019 实验室设备网 版权所有 |