C语言函数调用常见问题(1)

在我看来 有许多计算问题如果通过函数调用方式来解决就会使得代码整体看起来简介又便于识别
但是在调用函数时候要注意以下几个问题
一、基本功能
1、函数调用,即把函数的输入值填进函数名后面的括号中,不需要注明函数类型

		interchange(x, y);//无返回值
		x = interchange(x, y);//返回值为 x

2、定义函数,此处重点注意:
1):无返回值时:

void interchange(int u, int v)

2):有返回值时:

double interchange(int u, int v)   //double 为返回值类型

3、函数声明:重点:后面带有分号

void interchange(int u, int v);  //无返回值
double interchange(int u, int v);  //有返回值

但是上述方法要么没有返回值 , 要么只能有一个返回值(因为定义函数内部 return xxx 只能跟一个值,并且如果没有返回值,函数内部对值的计算和改变就不能影响到原来函数内部的值)
二、指针方法改变原来函数值
1、首先了解指针:指针(pointer)是一个值为内存地址的变量

ptr = &booh;   //  ptr 就是指针,存储的是  booh  的地址

2、运算符:
1):&
&nurse 表示的是 nurse 的地址
2):*
* 的后面跟指针名或者地址 读出该地址内部的值

 nurse = 22;
 ptr = &nurse;  //  指向nurse的指针
 val = *ptr;    //将 ptr 地址上的值 22 赋给  val

3):打印指针,即打印变量存储位置 %p

printf("%p\n",ptr);  // 打印指针 ptr 

4):指针在函数中的使用(交换函数问题具体代码):

#include<stdio.h>
void interchange(int * u, int * v);    //函数声明
int main(void)
{
	int x = 5, y = 10;
	printf("Oringinally x = %d and y = %d.\n",x, y);
	interchange(&x, &y)     //  调用函数   此处调用的是变量存储地址  所以能改变变量的值 
	printf("Now x = %d, y = %d.\n",x, y);
}
void interchange(int * u, int * v)    //函数定义  * 作用是读取 后面地址中的变量的值  所以 此处传进来的是两个int 类型的值
{
	int temp;
	temp = *u;   //将指针 u 指向的地址中的值传给 temp
	*u = *v;     //将指针 v 对应的地址中的值传到指针 u 指向的地址中
	*v = temp;   //将 temp 中的值传给指针 v 指向的地址中
}
注:这个函数虽然没有返回值,但是却能改变原函数中的值,这要归功于指针的作用,直接使得调用函数能够对地址中的变量进行改变,从而不需要返回值(此乃釜底抽薪)
  • 11
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值