OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8167|回复: 9

原子哥,求解释!!!!!

[复制链接]

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-6-28
在线时间
3 小时
发表于 2013-8-28 12:51:37 | 显示全部楼层 |阅读模式

关于LCD显示的里面一个函数void LCD_ShowString(u8 x,u16 y,const u8 *p),第三个变量不是一个指针变量嘛。但是在主函数中调用的时候LCD_ShowString(30,50,"Mini STM32 ^_^");

里面第三个变量怎么变成字符串内容了。很不解!!求原子哥解释。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1351
金钱
1351
注册时间
2012-4-25
在线时间
195 小时
发表于 2013-8-28 13:45:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

10

主题

232

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2288
金钱
2288
注册时间
2012-8-24
在线时间
247 小时
发表于 2013-8-28 13:47:56 | 显示全部楼层
指针变量就指向字符串的地址呀
单片机技术交流请加127034610
回复 支持 反对

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2385
金钱
2385
注册时间
2012-11-22
在线时间
403 小时
发表于 2013-8-28 14:18:02 | 显示全部楼层
字符串就是指针
态度决定一切
回复 支持 反对

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-6-28
在线时间
3 小时
 楼主| 发表于 2013-8-28 15:17:20 | 显示全部楼层
回复【3楼】liushiming82:
---------------------------------
是啊。那怎么能用字符串的内容当作字符串地址啊。由于小弟刚开始学,很多地方不懂,
回复 支持 反对

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-6-28
在线时间
3 小时
 楼主| 发表于 2013-8-28 15:19:22 | 显示全部楼层
回复【4楼】冰封嗜魔:
---------------------------------
谢谢大神!我知道字符串数组名可以当作指针,但是字符串内容当作指针,小弟还真没用过。
回复 支持 反对

使用道具 举报

28

主题

190

帖子

0

精华

高级会员

Rank: 4

积分
758
金钱
758
注册时间
2012-8-23
在线时间
71 小时
发表于 2013-8-28 16:07:11 | 显示全部楼层
回复【楼主位】xuper2455:
---------------------------------
一个字符串就相当于一个字符数组,那个指针变量就是用来传递字符数组首地址的
一介草民……
回复 支持 反对

使用道具 举报

10

主题

232

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2288
金钱
2288
注册时间
2012-8-24
在线时间
247 小时
发表于 2013-8-28 17:37:12 | 显示全部楼层
你应该好好看一下C语言中指针与字符串相关内容
单片机技术交流请加127034610
回复 支持 反对

使用道具 举报

5

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
205
金钱
205
注册时间
2013-6-8
在线时间
2 小时
发表于 2013-8-29 09:44:44 | 显示全部楼层
字符串是官二代,一出生就自动有内存空间,

这就是为什么  *p=56 不合法,  但是*p="abcd"合法, 前提*p必须是const的,否则编译器告警,但不报错,任可以运行,风险很大,因为无名字符串一定是const不可修改的

指针的使用必须要有指针域和数据域

例如
char str[]="have name string";
const char *no="no name string";//无名字符串
char val='F';
char num=120;


lcd_showstring(x,y,  str);//合法
lcd_showstring(x,y,  &val);//合法
lcd_showstring(x,y,  &num);//合法
lcd_showstring(x,y,  no);//合法
lcd_showstring(x,y,  "show this string");//合法

lcd_showstring(x,y,  'F');//不合法
lcd_showstring(x,y,  120);//不合法
即使爬到最高的山上,一次也只能脚踏实地地迈一步。
回复 支持 反对

使用道具 举报

8

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2013-6-28
在线时间
3 小时
 楼主| 发表于 2013-8-29 10:25:41 | 显示全部楼层
回复【9楼】倒拔萝卜:
---------------------------------
谢谢大神回复。明白了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-14 04:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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