100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > c语言使用指针在被调函数中改变主调函数的变量 地址运算符 间接运算符

c语言使用指针在被调函数中改变主调函数的变量 地址运算符 间接运算符

时间:2021-12-05 16:14:39

相关推荐

c语言使用指针在被调函数中改变主调函数的变量 地址运算符 间接运算符

1.指针

用于存储变量的地址

指针是一个值为内存地址的变量。

2.&运算符(地址运算符)

&后跟一个变量名,给出变量的地址

&a,表示变量a的地址

3.*运算符(间接运算符/解引用运算符)

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

a=1;p=&a;//p是指向a的指针v=*p;//将p指向的地址上的值赋给v//以上三条语句最终结果,将1赋值给v

4.声明指针

类型说明符表示指针所指向对象的类型。

*表示声明的变量是一个指针。

声明指针时使用的星号和解引用运算符不是一个东西。

通常,在声明时,星号和指针名之间有空格,解引用变量时省略空格。

int * a;char * c;

5.使用指针在函数间通信

使用指针交换两个数,例子:

#include<stdio.h>void interchange(int * u,int * v){//参数是一个指针类型int temp;temp= *u;//temp获得u指向对象的值*u = *v;*v = temp;} int main(){int x = 5, y = 10;printf("原始数据 x = %d ,y = %d\n",x,y);interchange(&x,&y);//把地址发送给函数printf("交换后 x = %d ,y = %d",x,y);return 0; }//输出: //原始数据 x = 5 ,y = 10//交换后 x = 10 ,y = 5

该函数传递的是x和y的地址,u和v将把地址作为他们的值,因此应将u、v声明为指针。

u的值是&x,所以用*u可表示x的值。

x和y的地址传递给该函数,使用指针和*运算符,该函数可以访问存储在这些位置的值并改变他们。

如果调用函数时,传递的是x的地址,那么函数中定义的形式参数必须是一个指向和x相同类型的指针。这样可以在被调函数中改变主调函数的变量。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。