真力时黑色手表贵吗:关于C语言函数调用问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 18:03:32
自定义的函数中的形参在函数体中能不能变化啊?
看下这个程序:将一个字符串转换为大写形式并输出
#include <stdio.h>
char *mytoupper(char *s);
main( )
{ char ps[80], *s;
gets(ps); s=mytoupper(ps); puts(s);}
char *mytoupper(char *s)
{ char *t=s;
while (*t!=‘\0’){ *t=(*t>=‘a’ && *t<=‘z’)? *t-32 : *t; t++; }
return(s);}
我将被调用的函数改为char *mytoupper(char *t)
{while(*t!='0')
{*t=(*t>='a'&&*t<='z')?*t-32:*t;
t++; }
return(t);}
为什么就不行了呢?指针应该是可以变化的啊

调用有两种调用方式,没有指针的叫做'call by value'是不能改变参数值的,通过指针调用的叫做'call by reference',可以改变参数值

名字?当然不能,要用定义时的名字啊,或者再去定义个变量来赋值,再或者可以用指针来引用

不能。你想想看吧,如果你修改了你的形参的名字,你函数过程中靠什么来标识你传入的变量?