Menu
CoddyTech

值与指针

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 
challenge icon

挑战

简单

在给定的代码中,我们定义了一个名为 y 的变量。

  • 编写一个名为 square 的函数,该函数以指向整数的指针作为参数。
  • 在这个函数中,将指针指向的变量的值平方,并打印它的值。
  • 分别在 square 函数和 main 函数中打印变量的值,以显示原始变量已被更改。

亲手试试

#include <stdio.h>


// square 函数通过指针计算值的平方
 
int main(void) {

    int a = 200;
    
    // 调用 square 函数
     
    // 打印原始变量 
    
    return 0;
}

C 语言中的函数中的所有课

自己练习: C 在线编译器