那到底什么是指针呢,其实指针和之前学习的变量基本相似,不过变量里面放的是一些值,而指针里面放的是它所指的地方的地址。在声明一个变量是,计算机就会为该变量预留一个位置,而指针所指的就是那个位置。
举个例子:
int 郎木寺旅游攻略a = 10;//设置一个变量a的值为10
int *p = &a;//p这个指针里在阳光下成长作文面就放的是a的地址
而&这个符号,就是取地址符,就像我们在使用scanf函数时 scanf(“%d”,&a); 这个a前面的&是一个意思,就是获取到某个变量的地址。
而当你创建了一个指针是,你就要给他赋地址国际经济与贸易专业就业前景,否则的话它就会像那种鼠标一样在硬盘上乱找,就会随机找个地址,所以我们在创建了指针时,就一定要给他去给他赋一个位置。
指针的基础:
如何创建一个指针函数呢?
int p; 这是我们之前就知道的,创建一个整形变量p,而int *p; 就是设置一个指针p;关键就是在于中间的 *。所以我们在创建指针变量时,一定不要忘记 *;
指针的赋值:可以在创建指针的时候就赋值像这样:int *p = &a; 也可以在创建了之后单独赋值像这样: int *p; p = &a; 两种方法都一样,没有太大的区别,只不过一个一行代码,一个两行代码,如果我们之前已经创建了变量,那我们还是在创建指针的时候就直接给他赋值,以免后面忘了,对自己后续的程序发生影响。
那指针到底能干什么呢?
#include <stdio.h> int main(){ int a = 10; int *p = &a; printf("a的地址为%p",&a);//这是直接输出a的地址 printf("a的地址为%p",p);//只是输出p的指针所指的地址 printf("a的值为%d",*p);//输出p的指针所指的地址中变量的值 return 0;}
通过这3个输出函数我们可以知道,前两个输出的都是a的地址,而第三个输出的则是a变量里的值。
所以我们可以理解为 *p 就是 a 这个变量的值,这就是最通俗易懂的理解了。
并且在输出 p 时也就是输出 a 的地址时,也是有不同的输出方式的,最基础的就是
%lu 是十进制的方式输出;
%p是以十红酒怎么喝六进制的方式输出;
之前说到 *p 可以看作是它所指的 a 变量的值,所以它也是可以再重新被赋值的,当然它的赋值不是给指针函数赋值,看似是在给指针赋值,其实改变的还是它所指的函数的值;
像这样
int a,*p;a = 10;p = &a;*p = 20;printf("a = %d",*p);
这个函数所输出的值就会为 20 ;因为指针是之间在你的地址上给你改变,所以说指针的改变相比较之前的函数就会方便很多,比如我们在学习函数的时候,会将值从主函数传到其他的函数中去做计算,但是传回来时就很麻烦,因为它一次只能传回来一个值,但是指针就不一样了,它不需要将值传回来,直接时实时将它所指的值进行改变;
像接下来这个例子,我们之前也都用函数的方式写过;
#include <stdio.h> void swap(int* p, int* q){int temp;temp = *p;*p = *q;*q = temp; }int main(){int a = 10, b = 20;swap(&a, &b);printf("a=%d b=%d",a,b); return 0;}
这个函数最后输出的值为
可以看到,输出的值已经发生了交换请把你的微笑留下,这就是指针的强大之处吧;
可以更简单的来解决我们之前遇到的问题,所以说,学好指针是学好c语言的基础!
到此这篇关于c语言之初识指针的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 03:12:59,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/245b565dfcf656d7a0d2f9cc91c82cf8.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:C语言之初识指针.doc
本文 PDF 下载地址:C语言之初识指针.pdf
留言与评论(共有 0 条评论) |