C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)
生活随笔
收集整理的這篇文章主要介紹了
C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果自定義一個函數,沒有任何返回值,而形參是一個指針傳入這個函數,在這個函數中,無論如何改變指針所指的方向,函數結束后對外部數據沒有變化,唯獨通過指針,來間接改變函數以外的變量的值(例如令*p = 一個新的值)。那么此時此刻,在內存中p的地址里的數據已經改變,而函數結束后,該函數對外部做出的貢獻就是把原來p的地址里的數據改變了,其他都沒變,包括p指針所指的地址。
#include<stdio.h> void change1(int *y) {int c = 1000;y = &c;};void change2(int *y) {int c = 20;*y = c;//通過指針間接修改原來y所指的值 };void main() {int a = 3;int *b = &a;printf("%d\n",a);printf("%d\n",*b);printf("%d\n",b);change1(b);printf("%d\n",a);printf("%d\n",b);printf("%d\n",*b);change2(b);printf("%d\n",a);printf("%d\n",b);printf("%d\n",*b); }輸出結果
3 3 1703740 3 1703740 3 20 1703740 20 Press any key to continue無論經過多少外部函數,指針b的地址在main()中始終沒變,而在change2函數中通過b指針把a的值修改了
總結
以上是生活随笔為你收集整理的C语言中,指针在一个自定义且不带返回值是如何改变外部一些变量的(指针与函数的相互作用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的世界python写游戏_快来试试Py
- 下一篇: python的应用领域和常用函数模块有哪