问题:
写一个自增函数,每次调用,自增1。
思路:
- 意思就是,我写的函数,要么通过影响主函数的值,达到自增1.要么,返回一个值,然后在主函数里加起来。
- 也就是一个给函数传地址,一个传数值。
- 传地址,意思是,形参可通过实参的地址,从而访问主函数,从而影响实参的值。
- 而传数值,则只是形参对实参的临时拷贝,即他们是两块存储空间,混不影响,就跟复制粘贴一样。
- 这里主要介绍传地址。
- 实参需要用到&取地址符,给实参地址传给形参,而函数中,形参需要定义一个指针变量,用来接收实参的地址,
- 在函数中,自增的时候,需要用到*符号,这是取内容符号,在定义指针的时候也需要用到,但声明定义指针的时候,意思是我指针,没有取内容的左右。
- 在用*num++时,需要给(*num)括住,不然系统识别不出来你要表达的真正意思。
- 或者可以写开用 *num = * num +1;
代码如下:
#include <stdio.h>
void numplus(int* num)
{
//(*num)++;// 二选一都可
*num = *num + 1;
}
int main()
{
int num = 0;
int i;
for (i = 0; i < 5; i++)
{
numplus(&num);
printf("%d\n", num);
}
}