
为了允许使用函数的副作用, 函数调用可以被作为一个语句
在这种情况下,所有的返回值都被舍弃。
局部变量可以在语句块中任何地方声明。 声明可以包含一个初始化赋值 *** 作
如果有初始化值的话,初始化赋值 *** 作的语法和赋值 *** 作一致 。 若没有初始化值,所有的变量都被初始化为 nil。
一个代码块同时也是一个语句块, 所以局部变量可以放在代码块中那些显式注明的语句块之外。局部变量的可见性规则
数字和字面串在 中解释; 变量在 中解释; 函数定义在 中解释; 函数调用在 中解释; 表的构造在 中解释。 可变参数的表达式写作三个点('...'), 它只能在有可变参数的函数中直接使用;这些在 中解释。
二元 *** 作符包含有数学运算 *** 作符(.1), 位 *** 作符, 比较 *** 作符(), 逻辑 *** 作符), 以及连接 *** 作符)。 一元 *** 作符包括负号(), 按位非(), 逻辑非(), 和取长度 *** 作符(§)。
函数调用和可变参数表达式都可以放在多重返回值中。 如果函数调用被当作一条语句(), 其返回值列表被调整为零个元素,即抛弃所有的返回值。 如果表达式被用于表达式列表的最后(或是唯一的)一个元素, 那么不会做任何调整(除非表达式被括号括起来)。 在其它情况下, Lua 都会把结果调整为一个元素置入表达式列表中, 即保留第一个结果而忽略之后的所有值,或是在没有结果时, 补单个 nil。
被括号括起来的表达式永远被当作一个值。 所以, (f(x,y,z)) 即使 f 返回多个值, 这个表达式永远是一个单一值。 ((f(x,y,z)) 的值是 f 返回的第一个值。 如果 f 不返回值的话,那么它的值就是 nil 。
数字和字面串在 中解释; 变量在 中解释; 函数定义在 中解释; 函数调用在 中解释; 表的构造在 中解释。 可变参数的表达式写作三个点('...'), 它只能在有可变参数的函数中直接使用;这些在 中解释。
二元 *** 作符包含有数学运算 *** 作符(.1), 位 *** 作符, 比较 *** 作符(), 逻辑 *** 作符), 以及连接 *** 作符)。 一元 *** 作符包括负号(), 按位非(), 逻辑非(), 和取长度 *** 作符(§)。
1、值传递,创建变量x和y,x的值等于a的值,y的值等于b的值
void Exchg1(int x, int y)
{
int tmp
tmp=x
x=y
y=tmp
printf(“x=%d,y=%d/n”,x,y)
}
void main()
{
int a=4,b=6
Exchg1 (a,b)
printf(“a=%d,b=%d/n”,a,b)
}
2、地址传递,相当于建立了px和py两个指向整型的指针,其值分别为a和b的地址
Exchg2(int *px, int *py)
{
int tmp=*px
*px=*py
*py=tmp
print(“*px=%d,*py=%d/n”,*px,*py)
}
main()
{
int a=4
int b=6
Exchg2(&a,&b)
Print(“a=%d,b=%d/n”, a, b)
}
3、引用传递,x和y直接引用a和b,对a和b *** 作,相当于给a、b起了别名x、y
Exchg2(int &x, int &y)
{
int tmp=x
x=y
y=tmp
print(“x=%d,y=%d/n”,x,y)
}
main()
{
int a=4
int b=6
Exchg2(a,b)
Print(“a=%d,b=%d/n”, a, b)
}
扩展资料:printf用法:
printf()函数的调用格式为:printf("&lt格式化字符串&gt",&lt参量表&gt)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d\n",a)
输出结果为a=1234。
C语言中调用函数的方法及步骤:
工具/原料:C语言
1、首先需要输入想要调用的函数。
2、然后当输入一个括号后,即可观察他的参数。
3、接着在对应的参数中输入参数值。
4、然后,系统会发生一个警告。
5、接着需要调用它相应的头文件。
6、最后再次编译,发现没有任何警告和错误即可。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)