请按参考
作函数呼叫的参考,并非通过自己的变量,通过地址的变数.地址可变可利用与管理.下一个互换功能及格来电地址变数,而非实际价值.
swap(&x, &y);
Dereferencing
现在的问题是,已经通过地址调剂功能,而非变量 所以我们要钝感的变数,使我们看实际值的变量的地址,而非为了掉.
dereferencing取得三用教鞭(*)符号.简单来说,这意味着每个变量前敬献*使用前,它是指以价值而非可变地址.下列程序说明及格逐掉两个参考价值.
#include <stdio.h>
void swap(int *x, int *y);
int main()
{
int x=6, y=10;
printf("Before the function swap, x = %d and y =
%d\n\n", x, y);
swap(&x, &y);
printf("After the function swap, x = %d and y =
%d\n\n", x, y);
return 0;
}
void swap(int *x, int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}
让我们看看输出的节目:
Before the function swap, x = 6 and y = 10
After the function swap, x = 10 and y = 6 |
递归功能,可说是一个功能,可致电本身.每个电话本身的需要,目前的状态函数推栈.很重要的一点是要记住这一点,因为很容易造成栈溢出,即栈已经跑出更多空间放置任何数据.
以下例子使用了一些计算阶乘递归.是一个阶乘数乘以整数每隔低于本身,降至1.例如,阶乘数6条是:
Factorial 6 = 6 * 5 * 4 * 3 * 2 * 1
因此阶乘是6720. 由此可以看出,上述例子阶乘阶乘6=6*5. 同样,阶乘阶乘45*5=,等等.
以下是一般规则计算阶乘号码.
factorial(n) = n * factorial(n-1)
上述规则1例终止时,由于阶乘是1月1.让我们去了解它的帮助,例如:
#include <stdio.h>
long int factorial(int num);
int main()
{
int num;
long int f;
printf("Enter a number: ");
scanf("%d", &num);
f = factorial(num);
printf("factorial of %d is %ld\n", num, f);
return 0;
}
long int factorial(int num)
{
if (num == 1)
return 1;
else
return num * factorial(num-1);
}
让我们看看执行这一计划产量:
Enter a number: 7
factorial of 7 is 5040 |
|