OpenEdv-开源电子网

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

字符型的指针数组

[复制链接]

10

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2013-11-27
在线时间
11 小时
发表于 2017-7-9 18:06:14 | 显示全部楼层 |阅读模式
1金钱
有一个字符型的指针数组,指针所指向的字符串都是一个常量字符串
const char* Disp[]=
{
        {"temp"},
        {"vol"},
        {"light"},
        {"I love china very much"}
};
问题1 : 上面数组里面的每个数组元素都是一个指针,那么这里面的四个元素分别是这四个字符串的首地址吗?

问题2:   这个数组元素的个数 = sizeof(Disp)/sizeof(Disp[0])
           定义一个数组,数组元素类型是const char*,即Disp是一个指针数组,数组里面每个指针指向字符串。所以sizeof(Disp)是这个数组的总字节数,sizeof(Disp[0])求得每个指针的字节数,            注意是指针本身的字节数,不是指针指向的字符串字节数。
           那么问题是这个数组有4个元素,用sizeof 怎么来计算的??

最佳答案

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

1,是的。2,无法计算。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-9 18:06:15 | 显示全部楼层
1,是的。2,无法计算。
回复

使用道具 举报

10

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2013-11-27
在线时间
11 小时
 楼主| 发表于 2017-7-9 18:20:52 | 显示全部楼层
数组总共包含四个指针  4 * 4(32位机) = 16 bytes
                                   一个元素就是 4 byte

所以个数就是 NUM = 16 / 4 = 4
只是不明白的是,这里面的几个指针都是用这个常量字符串的首地址去指定的吗?
回复

使用道具 举报

10

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2013-11-27
在线时间
11 小时
 楼主| 发表于 2017-7-11 21:49:09 | 显示全部楼层
谢谢原子哥的回答!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-12-18 16:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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