0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于C语言中指针的基本用法解析

GReq_mcu168 2018-01-09 15:12 次阅读

很多初学者会发出这样的感慨:我C语言中其它的知识都学得可以,唯独指针搞不懂。如果是这样,我可以很负责的告诉你,对于这门编程语言,你等于是没学。所以学好指针对于初学者是非常重要的。或许你会觉得它有点抽象,但是当你彻底理解了指针的含义,你会发现指针用起来特别方便。

今天我就很肤浅的说一下指针的几种用法:

1、指针指向变量:

下面有这样一个代码块:

int main()

{int a=10;int b=15;test(a,b);printf("a=%d,b=%d ",a,b);}

void test(int x,int y)

{int tmp;tmp=x;x=y;y=tmp;}

最后输出的结果还是a=10,b=15。因为在函数调用时,实参和形参之间只是值传递。但我们使用指针结果就不一样了,如:

int main()

{int a=10;int b=15;test(&a,&b);printf("a=%d,b=%d ",a,b);return 0;}

void test(int * x,int *y)

{int tmp;tmp=*x;*x=*y;*y=tmp;}

输出结果a=15,b=10。变量a和b的值发生了交换。这是因为我们利用指针访问变量的存储单元,间接修改变量的值。

2、指针指向数组:

定义一个数组并初始化,int array[5]={2,5,12,7,8},定义一个指针变量并把数组的地址赋给它,int *p=array,注意数组名就是数组的地址,而且数组的地址就是首元素的地址。因此我们的指针变量就指向了数组的首元素,*p=2。如果把(p+1),那么指针变量就指向了数组的下一个元素5,因此我们可以利用指针来遍历数组的各个元素:

int main()

{int array[5]={2,5,12,7,8};int *p =array;for(int i=0;i<5;i++){printf("array[%d]=%d ",i,*(p+i));}return 0;}

3、指针指向字符串:

我们都知道用数组存储字符串,如char name[20]="jack",上面已经简单讲述了指针指向数组,所以我们可以这样做,char *name="jack",指针变量指向字符串的首个字符并可以依次访问字符串的各个字符。

4,指针指向函数:

我们需要知道怎样表示一个指针指向函数,说白了就是语法要正确,下面我也取一个代码块来说明一下:

int sum(int x,int y)

{return x+y;}

int main()

{int a=5;int b=6;int (*p)(int,int);p=sum;int result=(*p)(a,b);printf("The result is %d ",result);return 0;}

不难发现上面代码块里语句(*p)(a,b)可以用p(a,b)来代替,因为p和sum就是一样的,只是用前者可能更容易理解一点。而我们要知道怎样定义一个指针指向函数,int (*p)(int,int)这是固定写法,前面的int是指针将来指向的函数的返回值的类型,如果没有函数返回值,那就是void,后面括号里的两个int 当然就是指针将指向的函数的形参。指针指向函数用起来确实有点抽象,要想熟练运用的话就多去做一些这方面的练习吧!

5,指针指向结构体:

我们首先首先定义一个结构类型,

struct student

{

char *name;

int ages;

};

再根据类型定义结构体变量 struct student stu={"Rose",15};定义一个指针指向结构体类型,struct student *p;把结构体变量stu的地址赋给指针变量p,p=&stu;我们可以有3种方式来访问结构体中的属性ages:

stu.ages=15;(*p).ages=15;p->ages=15;不过第三种方式在C语言中只能用来指向结构体。

综上所述,指针的基本用法就是这几种,还有些用法不常见的小编在此就一一例举了,有兴趣的话可以去翻阅相关的资料

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128312
  • 指针
    +关注

    关注

    1

    文章

    473

    浏览量

    70361

原文标题:C语言中指针的几种用法

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言中指针变量的使用

      在使用时,一定要注意上面“*“号的用法差异。还需要注意的是,一个指针变量只能指向与其数据类型相同的变量。
    发表于 08-15 15:12 1505次阅读
    C<b class='flag-5'>语言中指针</b>变量的使用

    C语言中指针的定义

    上一节中,我们利用了一个小知识来介绍了一下指针,在上面这个例子中,小明和小丽手中的这个杯子就好比我们C语言中的变量,它确实是实实在在存放一些有具体意义的数据。这个杯套就类似于C语言中指针的作用,假设
    发表于 08-15 16:24 1662次阅读
    C<b class='flag-5'>语言中指针</b>的定义

    C语言中指针函数和函数指针的概念及应用示例

    在C语言中指针函数和函数指针是强大且常用的工具。它们允许我们以更灵活的方式处理函数和数据,进而扩展程序的功能。
    发表于 08-16 16:14 337次阅读

    C语言中指针的基本概念和用法

    在C语言中指针是一项重要的概念,它允许我们直接访问和操作内存地址。
    发表于 08-17 15:30 511次阅读

    谈谈C语言中指针有什么好处,请各位高手们谈谈自己的体会

    谈谈C语言中指针有什么好处,请各位高手们谈谈自己的体会...
    发表于 09-01 17:38

    学习单片机的C语言中指针资料下载

    很大程度上是由于指针在发挥着作用,就是指针使得C语言在编程语言中有着承上启下的作用。本书中比较有特色的把
    发表于 07-19 06:45

    C语言中atoi()函数的用法 相关资料分享

    C语言中atoi()函数的用法
    发表于 07-01 08:12

    语言中指针的介绍

    的内容。在C语言中, 允许用一个变量来存放指针,这种变量称为指针变量。因此,一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。图
    发表于 09-10 14:22

    C语言中指针是什么?如何规避野指针

    C语言中指针是什么?有哪几种类型?指针有何作用?如何规避野指针
    发表于 02-25 06:47

    C语言中链表的作用是什么?

    C语言中指针用的很少,链表、文件操作几乎没用过,所以也不能理解到底有什么作用。各位有经常在做程序时会用到这些吗。
    发表于 11-06 06:23

    C语言中指针的介绍非常详细

    C语言中指针的介绍非常详细 C语言中指针的介绍非常详细
    发表于 12-25 10:39 57次下载

    C语言中指针(重点)超详细

    C语言中指针1、指针是什么2、指针指针类型2.1、指针 + - 整数2.2、
    发表于 01-13 14:10 11次下载
    C<b class='flag-5'>语言中</b>的<b class='flag-5'>指针</b>(重点)超详细

    【C语言进阶】C语言指针的高阶用法

    【C语言进阶】C语言指针的高阶用法
    的头像 发表于 08-31 13:24 1948次阅读

    C语言中什么是指针数组

    在C语言中一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。
    的头像 发表于 03-10 15:26 1270次阅读

    简述C语言中指针重点

    在C语言中一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址,其概念与以前类似,只是返回的值的类型是指针类型。
    的头像 发表于 03-10 15:28 419次阅读