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语言
    +关注

    关注

    183

    文章

    7650

    浏览量

    146462
  • 指针
    +关注

    关注

    1

    文章

    484

    浏览量

    72018
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C++ 11 14 17 20内存管理-指针、智能指针和内存池基础与提升

    大模型在云端吞吐着海量数据,当自动驾驶汽车在毫秒间做出生死决策,我们不得不重新审视支撑这一切数字大厦的基石——C++内存管理。尽管高级语言层出不穷,但在对性能、延迟和资源控制有着极致要求的底层核心领域,C++依然是无可争议的王者
    的头像 发表于 04-20 15:51 618次阅读

    指针与函数详解

    = a + b; return(p); } 这是一个简单指针函数的例子,运行结果如下,本文代码在VScode平台运行,使用方法《使用VScode调试C语言》。 不过我有个疑
    发表于 01-23 06:02

    C语言重点—指针

    C语言是比较偏底层的语言,为什么他比较偏底层,就是因为他的很多操作都是直接针对内存操作的。 这篇我们就来讲解C语言的一大特点,也是难点,
    发表于 01-22 08:23

    函数指针介绍

    就是一个指针函数。其返回值是一个 int 类型的指针,是一个地址。 指针函数也没什么特别的,和普通函数对比不过就是其返回了一个指针(即地址值)而已。
    发表于 01-21 08:11

    请教一个C语言指针问题,求解答

    C语言指针,多多少少还是有些难度的,容易有些混淆。 请教大家下面的这个表达式是啥意思呢? short (*p)[size] = (short (*)[size])0x8ff00000; 是否为在0x8ff00000地址处分
    发表于 01-12 08:14

    C语言指针p、*p、&p、*&p、&*p分别代表什么

    C语言中,指针是非常重要的概念。指针是一个变量,其值为另一个变量的地址。使用指针可以直接访问内存中的数据,这使得
    发表于 01-07 07:34

    C语言主要特点

    。 3.数据类型丰富。C语言提供的数据类型包括整形、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点型、超长整型(long long)和布尔类型(b
    发表于 01-05 07:41

    C语言函数指针的六个高级的应用场景

    函数指针是一种非常强大的编程工具,它可以让我们以更加灵活的方式编写程序。在本文中,我们将介绍 6 个函数指针的高级应用场景,并贴出相应的代码案例和解释。 回调函数 回调函数是指在某个事件发生时被
    发表于 01-04 12:25

    C语言回调函数原来这么简单

    ” 这个概念,它是回调函数能够实现的重要基础。 1、函数指针学习过C语言的伙伴都知道,C语言中的灵魂 —
    发表于 12-30 06:45

    请问如何实现C语言访问MCU寄存器?

    单片机的特殊功能寄存器SFR,是SRAM地址已经确定的SRAM单元,在C语言环境下对其访问归纳起来有两种方法。 采用标准C的强制类型转换和指针来实现   采用标准
    发表于 12-26 07:00

    函数指针指针函数的区别

    = fun(a);   注意指针函数与函数指针表示方法的不同,千万不要混淆。最简单的辨别方式就是看函数名前面的指针*号有没有被括号()包含,如果被包含就是函数
    发表于 12-12 06:34

    如何用函数指针调用函数

    (void) { int(*p)(int, int);//定义一个函数指针 int a, b, c; p = Max;//把函数Max赋给指针变量p, 使p指向Max函数 printf(\"
    发表于 12-11 06:26

    C指针的妙用分享

    1、你知道吗?指针其实是个天生的数学家!看这个: #include int main() { int arr[] = {10, 20, 30, 40, 50}; int *p = arr
    发表于 11-17 06:35

    C语言和单片机C语言有什么差异

    有些扩展,及一些特殊写法如C51扩展的 data xdata bit sbit一类的,还有一些中断程序写法 void int() interrput 1一类的。 2、C是一门高级语言,它需要经过编译成
    发表于 11-14 07:55

    C语言的printf基本用法介绍

    简单的例子: printf(\"C语言\"); 这个语句可以在屏幕上显示“C语言”,与puts(\"
    发表于 11-12 07:04