一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
12
返回列表 发新帖
楼主: gw168sh
收起左侧

[51单片机] 哪位老师能给举个例子,讲讲C语言的指针

[复制链接]
 楼主| 发表于 2014-8-29 21:07 | 显示全部楼层
下面这段程序我试过了可以,依次显示出 33,55,65,75,86,97,108,119


但这用指针有点太牵强了,或者是多余啊






unsigned char code digi[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x58,0x5e,0x79,0x71,0x76,0x37,0x6b,0x6e,0x48};

unsigned char code TS[]= {33,55,65,75,86,97,108,119};
int x;
int *p;   //声明一个指针变量 P
void main(void)
{
        x=0;       
        p =& x;    // 取 x  的指针,放到指针变量p里
       
        while(1)
        {

                        if(Bit_1S==1)
                        {
                        Bit_1S=0;
                        x++;
                        if(x>7) x=0;
                         display_lcd1(TS[*p]);       
                        }
                                       
                 
            } // *** while(1) end ***
}// *** main() end ***


发表于 2014-8-29 22:52 | 显示全部楼层
你应该让p指向数组:
  1. void main(void)
  2. {
  3.         i = 0;
  4.         p = TS;

  5.         while(1)
  6.         {
  7.                 if(Bit_1S==1)
  8.                 {
  9.                         Bit_1S=0;
  10.                         display_lcd1(  *(p+i)  );
  11.                         i++;
  12.                         if(i>=8) i=0;
  13.                 }
  14.         }
  15. }
复制代码
发表于 2014-8-29 22:54 | 显示全部楼层
指针变量的威力在于它可以在指向数组后,通过自增或加减运算指向数组内不同元素。
发表于 2014-10-9 12:41 | 显示全部楼层
单片机C语言的指针可以说是鸡肋,不如直接插入汇编直接操作地址方便,效率更高
发表于 2014-10-9 14:18 | 显示全部楼层
推荐你看看编程之道的C&C++程序入门的视频教程,讲的很形象!~

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-21 04:48 , Processed in 0.046917 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表