#include iostream.h
int sign(int x);
int main()
{
int a=1;
while(a!=0)
cout"Input a number:"endl;
cina;
cout"Its sign is :"sign(a)endl;
}
return 0;
int sign(int x)
if(x0) return 1;
if(x0) return -1;
else return 0;
#includestdio.h
void chline(char ch,int i,int j)
{int i1,j1;
for(i1=0;i1i;i1++)
{for(j1=0;j1j;j1++)
printf("%c",ch);
printf("\n");
{char ch;
int i,j;
printf("Input ch i j:");
scanf("%c%d%d",ch,i,j);
chline(ch,i,j);
前面我们说的都是无参数无返回值的函数,实际程序中,我们经常使用到带参数有返回值的函数.
第一段:函数参数传递
①形式参数和实际参数
函数的调用值把一些表达式作为参数传递给函数.函数定义中的参数是形式参数,函数的调用者提供给函数的参数叫实际参数.在函数调用之前,实际参数的值将被拷贝到这些形式参数中.
先看一个例子:
void a(int); /*注意函数声明的形式*/
main()
int num;
scanf("%d",num);
a(num); /*注意调用形式*/
void a(int num_back) /*注意定义形式*/
printf("%d\n",num_back);
在主函数中,先定义一个变量,然后输入一个值,在a()这个函数中输出.当程序运行a(num);这一步时,把num的值赋值给num_back,在运行程序过程中,把实际参数的值传给形式参数,这就是函数参数的传递.
形参和实参可能不只一个,如果多于一个时,函数声明、调用、定义的形式都要一一对应,不仅个数要对应,参数的数据类型也要对应.
void a(int,float);
int num1;
scanf("%d",num1);
上面的例子中,函数有两个参数,一个是整型,一个是浮点型,那么在声明、调用、定义的时候,不仅个数要一样,类型也要对应.如果不对应,有可能使的编译错误,即使没错误,也有可能让数据传递过程中出现错误.
再看一个例子:
void a(int);
a(num);
void a(int num)
printf("%d\n",num);
看上面的例子,形式参数和实际参数的标识符都是num,程序把实际参数num的值传递给形式参数num.有些人可能就不明白了,既然两个都是num,为什么还要传递呢?干脆这样不就行了吗:
void a();
a();
void a()
其实不然,这就要涉及到标识符作用域的问题.作用域的意思就是说,哪些变量在哪些范围内有效.一个标识符在一个语句块中声明,那么这个标识符仅在当前和更低的语句块中可见,在函数外部的其实地方不可见,其他地方同名的标识符不受影响,后面我们会系统讲解作用域的问题.在这儿你就要知道两个同名的变量在不同的函数中是互不干扰的.
前面将的都是变量与变量之间的值传递,其实函数也可以传递数组之间的值.看下面的例子:
void a(int []);
a(array);
void a(int array[])
int i;
void fun(int n)
for(int i=0;in;i++)
putchar('*');
如果只是输出指定数量的*就是这个
int negate(int x)
return (0-x);
int my_abs(int)
return (x0)?x:(0-x);
以上就是土嘎嘎小编为大家整理的c语言设计符号函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!