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

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

3天内不再提示

c语言指针用法简单举例 C51的指针概述

那片星 来源:那片星 作者:那片星 2022-04-22 18:04 次阅读

指针是C语言的一个特殊的变量,它存储的数值被解释成为内存的一个地址。

指针定义的一般形式如下。

数据类型 *指针变量名;

例如:
int i,j,k,*i_ptr; //定义整型变量i,j,k和整型指针变量i_ptr。
指针运算包括以下两种:
(1)取地址运算符。取地址运算符&是单目运算符,其功能是取变量的地址,例如:
i_ptr=&i; //变量i的地址送给指针变量i_ptr
(2)取内容运算符。取内容运算符“*”是单目运算符,用来表示指针变量所指单元的内容,在星号“*”运算符之后跟的必须是指针变量。例如:
j=*i_ptr; //将i_ptr所指的单元的内容赋给变量j
可以把数组的首地址赋予指向数组的指针变量。例如:
int a[5],*ap;
ap=a; //数组名表示数组的首地址,故可赋予指向数组的指针变量
也可以写成:
ap=&a[0]; //数组第一个元素的地址也是整个数组的首地址,也可赋予指针变量ap
还可以采用初始化赋值的方法:
int a[5],*ap=a;
也可以把字符串的首地址赋予指向字符类型的指针变量。例如:
unsigned char *cp;
cp="Hello World!";
这里应该说明的是,并不是把整个字符串装入指针变量,而是把存放该字符串的字符数组的首地址装入指针变量。
对于指向数组的指针变量,可以进行加减运算,例如:
cp--; //cp指向上一个数组元素
ap++; //ap指向下一个数组元素
例如:定义了指针类型的形式参数如下:
uchar *str;
该形式参数表示一个无符号字符型变量的地址。可以采用以下赋值语句:
SBUF=*(str+k); //将单元地址为str+k的内容赋给专用寄存器SBUF,启动发送
在调用该函数时,直接把数组trdata[]的数组名作为实际参数代入即可,因为数组名表示数组的首地址,故可直接赋予指向数组的指针变量。

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

    关注

    180

    文章

    7608

    浏览量

    137084
  • 指针
    +关注

    关注

    1

    文章

    480

    浏览量

    70581
收藏 人收藏

    评论

    相关推荐

    C语言程序设计教程第4版第8讲:指针

    C语言指针讲解
    发表于 11-20 14:10 0次下载

    C语言指针学习笔记

    本文从底层内存分析,彻底让读者明白C语言指针的本质。
    的头像 发表于 11-05 17:40 257次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>指针</b>学习笔记

    C语言指针运算符详解

    C语言中,当你有一个指向数组中某个元素的指针时,你可以对该指针执行某些算术运算,例如加法或减法。这些运算可以用来遍历数组中的元素,如ptr[i]等价于*(ptr + i)。然而,如果
    的头像 发表于 10-30 11:16 267次阅读

    把esp8266加入到c51单片机单通道程序怎么写

    要将ESP8266模块加入到C51单片机的单通道程序中,您需要了解如何通过串行通信(UART)与ESP8266进行通信。以下是如何实现这一点的步骤和示例代码。 步骤 1:硬件连接 首先,您需要
    的头像 发表于 10-18 11:32 651次阅读

    C语言指针详细解析

    可以对数据本身,也可以对存储数据的变量地址进行操作。 指针是一个占据存储空间的实体在这一段空间起始位置的相对距离值。在C/C++语言中,指针
    发表于 09-14 10:03

    面试常考+1:函数指针指针函数、数组指针指针数组

    在嵌入式开发领域,函数指针指针函数、数组指针指针数组是一些非常重要但又容易混淆的概念。理解它们的特性和应用场景,对于提升嵌入式程序的效率和质量至关重要。一、
    的头像 发表于 08-10 08:11 915次阅读
    面试常考+1:函数<b class='flag-5'>指针</b>与<b class='flag-5'>指针</b>函数、数组<b class='flag-5'>指针</b>与<b class='flag-5'>指针</b>数组

    面试中的高频问题:指针函数与函数指针,你能完美应对吗?

    一直觉得C语言较其他语言最伟大的地方就是C语言中的指针,有些人认为
    的头像 发表于 06-22 08:11 1757次阅读
    面试中的高频问题:<b class='flag-5'>指针</b>函数与函数<b class='flag-5'>指针</b>,你能完美应对吗?

    Keil+C51中对双数据指针的直接利用

    Keil+C51中对双数据指针的直接利用
    发表于 06-18 10:15 0次下载

    提高C代码可读性的编写技巧与策略

    指针C 语言的灵魂,是 C 比其他语言更灵活,更强大的地方。所以学习 C
    发表于 04-23 18:25 525次阅读

    C语言函数指针六大应用场景详解

    函数指针是一种非常强大的编程工具,它可以让我们以更加灵活的方式编写程序。在本文中,我们将介绍 6 个函数指针的高级应用场景,并贴出相应的代码案例和解释。
    的头像 发表于 04-23 18:19 906次阅读

    怎么啦?你的Keil C51和Keil MDK还无法共存吗?

    路径设置为:D:\software\Keil\Keil_MDK\ARM\PACK三、KeilC51与KeilMDK共存打开C51与MDK的安装目录,然后把C51
    的头像 发表于 03-24 08:09 3272次阅读
    怎么啦?你的Keil <b class='flag-5'>C51</b>和Keil MDK还无法共存吗?

    C语言指针用法

    C语言编程中善用指针可以简化一些任务的处理,而对于一些任务(比如动态内存分配),必须要有指针才行的。也就是说精通C
    发表于 03-05 14:22 369次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>的<b class='flag-5'>指针</b><b class='flag-5'>用法</b>

    怎么理解指针指针

    怎么理解指针指针?其实这个概念并不难,只是把它放到实际应用中,容易造成困扰。
    的头像 发表于 02-23 16:46 1216次阅读
    怎么理解<b class='flag-5'>指针</b>的<b class='flag-5'>指针</b>?

    C51C251有啥区别

    用于较简单的应用,如家用电器、电子玩具等。而C251通常用于更复杂的应用,如工业自动化、汽车电子、通信设备等。 总的来说,C251相对于C51具有更高的性能和功能,适用于更复杂的应用,
    发表于 01-20 11:39

    结构体与指针的关系

    C语言中,结构体(Struct)是一种用户自定义的数据类型,它允许您将不同类型的数据项组合在一起,以便形成一个更复杂的数据结构。结构体可以包含多个成员变量,每个成员变量可以是不同的数据类型。而结构
    的头像 发表于 01-11 08:00 1014次阅读
    结构体与<b class='flag-5'>指针</b>的关系