OpenEdv-开源电子网

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

关于C语言字符的理解,恳请大神指教(C语言知识问题求解)

[复制链接]

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
发表于 2015-10-28 16:09:18 | 显示全部楼层 |阅读模式
5金钱
小弟写单片机C也有一段时间了,可是很多基本的概念似乎还是理解的不是很清楚,感觉C真的是很神奇的东西~~~
问题1:1>在vc6.0平台下:#define u8 unsigned char
                      u8 *p = "abcd";这是正确的
         2>同样的代码放在KEIL4下却是错误的,小弟不知道哪里出错了?
         按照小弟的理解,字符仅仅是占用了128位,不管事使用char,或者是使用unsigned char,不应该都是正确的吗???

问题2:char p[]="abcd";
       char *p="abcd";
         请问大神:这2者之间有区别吗?还是完全相同???

最佳答案

查看完整内容[请看2#楼]

问题1:#define u8 unsigned char放在iar里编译没有问题,题外话:这里用typedef会不会好点 问题2:char p[]="abcd";  --->  "abcd"为常量,一般放在flash中,而这样操作后会复制这四个字符到p的数组中,p[0] 为a, p[1] 为b, p[2] 为c, p[3] 为d, 数组p在ram中,即flash和ram中都有"abcd" char *p="abcd";---->  ...
电子爱好者
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2015-10-28 16:09:19 | 显示全部楼层
问题1:#define u8 unsigned char放在iar里编译没有问题,题外话:这里用typedef会不会好点

问题2:char p[]="abcd";  --->  "abcd"为常量,一般放在flash中,而这样操作后会复制这四个字符到p的数组中,p[0] 为a, p[1] 为b, p[2] 为c, p[3] 为d, 数组p在ram中,即flash和ram中都有"abcd"
char *p="abcd";----> 如上, "abcd"为常量,p指向这个向量,RAM中就没有这个"abcd"的备份
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

119

主题

439

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1185
金钱
1185
注册时间
2015-9-18
在线时间
422 小时
 楼主| 发表于 2015-10-28 16:51:58 | 显示全部楼层
回复【2楼】ianhom:
---------------------------------
突然想问大侠:你是不是看过诛仙啊???
感谢大侠细心指导,小弟还有个问题:我对数据到底是存放在ram还是存放在内存中,不是很理解,大神能讲解,或者推荐某方面的资料吗?
电子爱好者
回复

使用道具 举报

9

主题

538

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3371
金钱
3371
注册时间
2015-1-7
在线时间
794 小时
发表于 2015-10-28 16:56:17 | 显示全部楼层
回复【3楼】liuchang:
---------------------------------
1、为啥我看过诛仙?我读书少,不要骗我。
2、找个开发板,直接写代码,仿真,然后查看某个变量的地址(刚刚验证你的问题就上板子做了实验,才回复你的)。
机器生汇编,汇编生B,B生C,C生万物.... 经过长期对C语言的研究,目前只有两个方面不懂:这也不懂,那也不懂
https://github.com/ianhom
回复

使用道具 举报

10

主题

560

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1782
金钱
1782
注册时间
2014-6-27
在线时间
964 小时
发表于 2015-10-29 16:15:48 | 显示全部楼层
回复【3楼】liuchang:
------------------------------
2种写法都可以的,怎么会有错误呢?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 12:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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