值与指针
Coddy C 语言中的函数 课程的第 7 课,共 17 课。
向函数传递参数时,有两种方式:按值传递或按指针传递。我们来看一个简单的例子,了解这里的值和指针指的是什么:
#include <stdio.h>
void sum(int a) {
a = a + 1;
printf("sum function: %d\n", a);
}
int main(void) {
int a = 10;
sum(a);
printf("main function: %d\n", a);
return 0;
}输出:
sum function: 11
main function: 10 如你所见,在这个例子中,我们使用的是值,因此变量 a 的值没有改变。不过,如果我们需要访问变量并更改它的值,可以使用指针作为参数。
#include <stdio.h>
void sum(int *a) {
*a = *a + 1;
printf("sum function: %d\n", *a);
}
int main(void) {
int a = 10;
sum(&a);
printf("main function: %d\n", a);
return 0;
}由于这个函数现在接受一个指针作为参数,调用它时,你必须传递变量的地址:
sum(&a);输出:
sum function: 11
main function: 11 挑战
简单在给定的代码中,我们定义了一个名为 y 的变量。
- 编写一个名为
square的函数,该函数以指向整数的指针作为参数。 - 在这个函数中,将指针指向的变量的值平方,并打印它的值。
- 分别在
square函数和main函数中打印变量的值,以显示原始变量已被更改。
亲手试试
#include <stdio.h>
// square 函数通过指针计算值的平方
int main(void) {
int a = 200;
// 调用 square 函数
// 打印原始变量
return 0;
}
C 语言中的函数中的所有课
自己练习: C 在线编译器