C中最重要、最复杂的概念之一就是指针(pointer)
指针是用于存储地址的变量
例如:scanf()函数中使用地址作为参数
当需要改变调用函数中的某个值时,任何被调用的无返回值的C函数都需要使用地址参数完成该任务
一、地址运算符&
一元运算符&:可以取得变量的地址(a为变量,&a为该变量的地址)
一个变量的地址代表该变量在内存中的位置
示例代码:
#include <stdio.h>
int main(void)
{
int num = 10;
printf("the value of num is: %d \n", num); // 打印变量num的值
printf("the address of num is: %d \n", &num); // 打印变量num的地址
}
运行结果:
1)变量名相同但地址不同,本质上为2个变量,在不同函数中声明的同名变量是完全不同的
2)函数调用时将实参的值传递给形参,但只是进行了数值传递,两个变量(实参和形参)分别保持原来的特性
3)每个C函数都使用自己的变量,原变量不因被调函数中操作的副作用而意外地改变
二、改变调用函数中的变量
示例代码:<