C语言---函数

luckLjh / 2023-09-06 / 原文

与指针相关的运算符

指针是一个值为内存地址的变量(或数据对象)

地址运算符:&

一般注解:后面跟一个变量名时,&给出该变量的地址。

示例:&nurse表示变量nurse的地址

间接(或解引用)运算符:*

一般注解:后跟一个指针名或地址时,*给出存储在指针指向地址上的值。

示例:

nurse=22;

ptr=&nurse;//指向nurse的指针

val=*ptr;//把ptr指向的地址上的值赋给val

执行以上3条语句的最终结果是把22赋给val。

可以把变量相关的两类信息传递给函数

第一种:主函数调用function1(x);要求函数定义中的形式参数必须是一个与x的类型相同的变量: int function1(int num);

第二种:主函数调用function2(&x);要求函数定义中的形式参数必须是一个指向正确类型的指针:int function2(int *ptr);

使用指针在函数间通信

int main(void){
    int x = 5,y=10;
    printf("原始的x = %d 和 y = %d。\n",x,y);
    interchange(&x,&y);//把地址发送给函数
    printf("现在 x = %d 和 y=%d.\n",x,y);
    return 0;
}
void interchange(int *u,int *v){
    int temp;
    temp = *u;//temp获得u所指向对象的值
    *u = *v;
    *v = temp;
}

interchange(&x,&y)该函数传递的不是x和y的值,而是它们的地址。

这意味着出现在interchange()原型和定义中的形参u和v将把地址作为它们的值。

使用* 和 指针,该函数可以访问存储在这些位置的值并改变它们