社区
C++ 语言
帖子详情
求解“二维指针数组” 高手来
XiaoBai2222
2010-05-23 10:16:33
(1)char a[4][20]={"Be","Sh","Ti","Gu"};
(2)char a[4][20]={{'B','e'},{'S','h'},{'T','i'},{'G','u'}};
假如说(1)(2)语句是等价的。那么请问下面的(3)语句怎样用上面的方法描述:
(3)char *a[]={"Be","Sh","Ti","Gu"};
(4)
多谢,请指教!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
115
13
打赏
收藏
求解“二维指针数组” 高手来
(1)char a[4][20]={"Be","Sh","Ti","Gu"}; (2)char a[4][20]={{'B','e'},{'S','h'},{'T','i'},{'G','u'}}; 假如说(1)(2)语句是等价的。那么请问下面的(3)语句怎样用上面的方法描述: (3)char *a[]={"Be","Sh","Ti","Gu"}; (4) 多谢,请指教!!!!!!!!!!!!!!!!!!!!!!!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ArtiFly2000
2010-05-24
打赏
举报
回复
1、2是二维数组
3是指针数组,和1、2是不一样的,分别打印下1、2、3形式的sizeof(a)就能看出来
3无法按2的形式来表示,因为2是二维数组的初始化形式
[Quote=引用楼主 xiaobai2222 的回复:]
(1)char a[4][20]={"Be","Sh","Ti","Gu"};
(2)char a[4][20]={{'B','e'},{'S','h'},{'T','i'},{'G','u'}};
假如说(1)(2)语句是等价的。那么请问下面的(3)语句怎样用上面的方法描述:
(3)char *a[]={"Be","Sh","Ti","Gu"};
(4)
多谢,请指教!!!!!!!……
[/Quote]
houailu
2010-05-23
打赏
举报
回复
上面写的很明确,注意指针指向的是地址
白云飘飘飘
2010-05-23
打赏
举报
回复
char *a1[]={a[0],a[1],a[2],a[3]};
白云飘飘飘
2010-05-23
打赏
举报
回复
1和2是一样的,都是二维数组。
3是一维数组,数组的元素是指向char的指针。初始化时必须使用指针。而字符串常量的类型就是指针。所以是不能用字符来初始化的。不过有一种绕弯的方式:
char a[4][20]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
char *a[]={a[0],a[1],a[2],a[3]};
equalsai
2010-05-23
打赏
举报
回复
(1)char a[4][20]={"Be","Sh","Ti","Gu"};
(2)char a[4][20]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
(3)char *a[]={"Be","Sh","Ti","Gu"};
其实对于(3)a[0],a[1],a[2],a[3]每一个都是一个char*型的。
与(1),(2)相比较,(1),(2)中a[0],a[1],a[2],a[3]的长度都是20,而(3)中a[0],a[1],a[2],a[3]的长度是不确定的,可以存变长的字符串。
没必要非得写成(1),(2)那种形式,如果要获得'B'的话a[0][0] = 'B'.
liutengfeigo
2010-05-23
打赏
举报
回复
要注意类型的匹配?
liutengfeigo
2010-05-23
打赏
举报
回复
char *a[] 这表示 指针数组。
而你后面的不是地址、
liutengfeigo
2010-05-23
打赏
举报
回复
char *a[]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
这样不可以的。
XiaoBai2222
2010-05-23
打赏
举报
回复
(1)char a[4][20]={"Be","Sh","Ti","Gu"};
(2)char a[4][20]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
(3)char *a[]={"Be","Sh","Ti","Gu"};
没错(1)(2)(3)是等价的,我想把(3)语句的"字符串"改写成字符型。当我写成(4)语句时,不能编译了。所以想知道正确的写法:
(4)char *a[]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
heartlesstoanyone
2010-05-23
打赏
举报
回复
3楼说的很对
liangyonglou
2010-05-23
打赏
举报
回复
去除楼上说的原因,假设1 2等价的话,你写的3其实和1、2是一样的,即在这里*a[] 等价于 **a
个人认为
XiaoBai2222
2010-05-23
打赏
举报
回复
对不起修证一下:
(1)char a[4][20]={"Be","Sh","Ti","Gu"};
(2)char a[4][20]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
假如说(1)(2)语句是等价的。那么请问下面的(3)语句怎样用上面的方法描述:
(3)char *a[]={"Be","Sh","Ti","Gu"};
(4)
heartlesstoanyone
2010-05-23
打赏
举报
回复
1和2根本不等价:
1)相当于char a[4][20]={{'B','e','\0'},{'S','h','\0'},{'T','i','\0'},{'G','u','\0'}};
200个经典C程序源码小游戏
014
求解
二维
数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021
求解
钢材切割的最佳订单 022 通过指针比较...
c语言经典源码例子100篇
实例42
二维
指针 实例43 指针的初始化 实例44 综合实例 第二篇 深入提高篇 实例45 结构体变量 实例46 结构体数组 实例47 结构体指针变量 实例48 结构体
指针数组
实例49 共用体变量 实例50 枚举类型 实例51 读写...
matlab常微分方程
求解
matlab常微分方程
求解
,通过编程实战掌握具体应用。包括matlab常微分方程
求解
前、matlab常微分方程
求解
中、matlab常微分方程
求解
后。
220个经典C语言源码
014
求解
二维
数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021
求解
钢材切割的最佳订单 022 通过指针比较...
c语言实例解析(基础篇)1~41
014
求解
二维
数组的最大/最小元素 015 利用数组求前n个质数 016 编制万年历 017 对数组元素排序 018 任意进制数的转换 019 判断回文数 020 求数组前n元素之和 021
求解
钢材切割的最佳订单 022 通过指针比较...
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章