昨天偷懒,今天写多一点吧
++于前后的不同
++i是左值,可以直接对++i赋值,例如++i=3。
i++是右值,不能直接对i++赋值,例如i++=3会报错。
- ++i是指被加1之后的i,而i++是指i被加1的这一个操作表达式,虽然两者的结果都为1,但是++i的结果是直接返回的加1后的i,而i++返回的是一个新的变量,值为i+1。++i和i++的结果都为1,因为这两者本身在汇编语言中没有任何区别,但是涉及到赋值操作的时候,i++会比++i多一行指令。
a=++i,直接对a赋值++i
a=i++,会申请一个临时空间存储运算之后的值,然后将这个临时值赋值给i。
函数参数
上一篇博客中:创建一个打印一行星号的无参数无返回值函数我们了解到了一个不需要与主函数通信的例子,下面我们来看一个与之不同的函数
上文中,如果文字能居中,信头会更加美观。可以通过打印文字之前打印一定数量的空格实现,这和打印一个数量的星号函数(starbar())类似,所以我们来编写一个更通用的函数,可以在两种情况下使用。
show_n_char(显示一个字符n次)
具体分析:假设可用的空间是40个字符宽。调用show_n_char(* 40)应该正好打印一行40个星号,就像starbar()之前做的那样。第2行G IGATHINK, INT.的空格怎么处理?GIGATHINK, INT.是15个字符宽,所以第1个版本中,文字后面有25个空格。为了让文字居中,文字的左侧应该有12个空格,右侧有13个空格。因此,可以调用 show n char(' ',12)。
show_n_char()与starbar()很相似,但是show_n_char()带有参数。从功能上看,前者不会源加换行符,而后者会,因为show_n_char()要把空格和文本打印成一行。
补充:strlen()函数给出字符串中的字符长度