5.C语言规定,实参变量对形参变量的传递是“值传递 “,即单向传递。在内存中,实参单元对形参单元是不 同的单元。 在调用函数时,给形参分配存储单元,并将实参对应 的值传递给形参,调用结束后,形参单元被释放,实参 单元仍保留并维持原值。 在执行一个被调用函数时,形参的值如果发生改变, 并不会改变主调函数的实参的值。 例:p158
5.C语言规定,实参变量对形参变量的传递是“值传递 “,即单向传递。在内存中,实参单元对形参单元是不 同的 单元。 在调用函数时,给形参分配存储单元,并将实参对应 的值传递给形参,调用结束后,形参单元被释放,实参 单元仍保留并维持原值。 在执行一个被调用函数时,形参的值如果发生改变, 并不会改变主调函数的实参的值。 例: p158
8.3.2函数的返回值 1.函数的返回值是通过函数中的 return语句获得的 被调用函数中只有通过 return语句才能返回一个确定 的函数值。不需要返回函数值可以不要 return语句。 函数中可有多个 return语句。 return语句后面的括弧也可以不要: return z等价于 return(z) return后面的值可以是一个表达式。 例如:max(intx,inty) return (X>y:X: y);
8.3.2 函数的返回值 1.函数的返回值是通过函数中的return语句获得的。 被调用函数中只有通过return语句才能返回一个确定 的函数值。不需要返回函数值可以不要return语句。 函数中可有多个return语句。 return语句后面的括弧也可以不要: return z 等价于return(z) return后面的值可以是一个表达式。 例如: max( int x,int y) { return(x>y?x: y);}
2.函数值的类型。函数的返回值属于某一个确定的 类型,应在定义函数时指定函数值的类型。 例如: int max(x,y)函数值为整型 char letter(ci,c2)函数值为字符型 double min(x,y)函数值为双精度型 C语言规定,凡不加类型说明的函数,一律自动按整型处理。 3.如果函数值的类型和 return语句中表达式的值 不一致,则以函数类型为准。对数值型数据,可以自 动进行类型转换。即函数类型决定返回值的类型。 例8.3
2.函数值的类型。函数的返回值属于某一个确定的 类型,应在定义函数时指定函数值的类型。 例如:int max(x,y) 函数值为整型 char letter(ci,c2)函数值为字符型 double min(x,y) 函数值为双精度型 C语言规定,凡不加类型说明的函数,一律自动按整型处理。 3.如果函数值的类型和return语句中表达式的值 不一致,则以函数类型为准。对数值型数据,可以自 动进行类型转换。即函数类型决定返回值的类型。 例8.3
4·如果被调用函数中没有 return语句,函数并不是不带回 值,而只是不带回有用的值,带回的是一个不确定的 用户不需要的值。 a=printstar o 5·对于“不带回值”,可以用“void"定义“无类型” (或称“空类型”) void printstar ( void print message (
4·如果被调用函数中没有return语句,函数并不是不带回 值,而只是不带回有用的值,带回的是一个不确定的、 用户不需要的值。 a=printstar(); 5· 对于“不带回值”,可以用“void”定义“无类型” (或称“空类型”) void printstar() {………} void print_message() {…………}
8.4函数的调用 8.4.1函数调用的一般形式 函数名(实参表列) 注意:调用无参函数则实参表列可以没有,但括弧不能省略。 如: cursor0; getcho 实参表列包含多个实参则各参数间用逗号隔开 实参与形参的个数相等,类型一致,顺序对应 传递数据。 对实参表求值的顺序并不是确定的, TurboC是按自 右而左的顺序求值; 例:8.4
8.4 函数的调用 8.4.1 函数调用的一般形式 函数名(实参表列); 注意:调用无参函数则实参表列可以没有,但括弧不能省略。 如: clrscr(); getch() ◼ 实参表列包含多个实参则各参数间用逗号隔开。 ◼ 实参与形参的个数相等,类型一致,顺序对应,一一 传递数据。 ◼ 对实参表求值的顺序并不是确定的,TurboC是按自 右而左的顺序求值; 例:8.4