什么是指针?为什么要用指针表示_行指针的用法

(4) 2024-06-27 14:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
什么是指针?为什么要用指针表示_行指针的用法,希望能够帮助你!!!。

1、什么是指针?

在C语言中,访问变量的方式有两种:
1、通过变量名访问(例如说去什么花店,以花店的名称找到对应的花店)
2、通过地址访问(通过花店的地址,导航过去)

地址是什么呢?

就是花店具体的路径xxxx路xxx号,在C语言中用指针来表示(0x)

所以说 指针=地址

在C语言中整型变量存放的是整数
字符变量存放的是字符
那么指针变量存放的就是地址

那么指针变量就可以说是存放指针的变量也可以说是存放地址的变量

什么是指针?为什么要用指针表示_行指针的用法_https://bianchenghao6.com/blog__第1张

2、为什么要用指针?

看下面一段代码

#include <stdio.h> void _swap(int a, int b) { 
    int temp=a; a=b; b=temp; } int main(void) { 
    int a=5,b=10; _swap(a,b); printf("a=%d b=%d",a,b); return 0; } 

什么是指针?为什么要用指针表示_行指针的用法_https://bianchenghao6.com/blog__第2张

在这一段代码运行下来发现,输出的结果a还是等于5,b还是等于10,他们的值并没有交换.

这是为什么呢?
从内存的方面分析,main函数的a,b存放在一个地址空间上,而函数中的a和b又是另外一个空间的a,b,并不是main函数中的a,b的地址,只是把他们的值传递过来了,最后进行交换,但是main函数中的a,b并没有发生变化。

那要交换他们的值就必须用到指针,把他们的地址传递进去就可以经行交换了。

#include <stdio.h> void _swap(int *a,int *b) { 
    int temp=*a; *a=*b; *b=temp; } int main() { 
    int a=5,b=10; _swap(&a,&b); printf("a=%d b=%d\n",a,b); return 0; } 

什么是指针?为什么要用指针表示_行指针的用法_https://bianchenghao6.com/blog__第3张

在这段代码里a,b的值就发生了改变,应为我们对a和b,的地址进从了操作,从而改变了他们的值。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复