找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2015|回复: 12
打印 上一主题 下一主题
收起左侧

请教c语言一维指针(字符串)数组和二维字符数组的区别

[复制链接]
跳转到指定楼层
楼主
ID:879924 发表于 2021-12-6 19:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. char arr[][3]={{‘a’,’b’,’\0’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“ab”,“bc”};
  3. char* arr[3]={{‘a’,’b’,’\0’},{‘b’,’c’,’\0’}};
复制代码
请问这三个初始化的具体区别和不同
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:592807 发表于 2021-12-7 08:32 | 只看该作者
1 普通的二维数组,你应该懂
2和3  char arr【3】里面有存放的就是指针也就是存放着3个数组的首地址
回复

使用道具 举报

板凳
ID:879924 发表于 2021-12-7 08:39 | 只看该作者
您好 请问这三个 用起来一样吗?? 第2个能否访问arr[1][1]
如果是下面三个代码,他们还一样吗???谢谢大佬
  1. char arr[][3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
复制代码
回复

使用道具 举报

地板
ID:879924 发表于 2021-12-7 08:40 | 只看该作者
请问大佬,123使用起来一样吗?像2能否访问arr[1][1]???
另外如果是如下代码,他们是否还相同?
  1. char arr[][3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
复制代码
回复

使用道具 举报

5#
ID:879924 发表于 2021-12-7 08:41 | 只看该作者
黄youhui 发表于 2021-12-7 08:32
1 普通的二维数组,你应该懂
2和3  char arr【3】里面有存放的就是指针也就是存放着3个数组的首地址

请问大佬,123使用起来一样吗?像2能否访问arr[1][1]???
另外如果是如下代码,他们是否还相同?
  1. char arr[][3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
复制代码
回复

使用道具 举报

6#
ID:879924 发表于 2021-12-7 08:41 | 只看该作者
黄youhui 发表于 2021-12-7 08:32
1 普通的二维数组,你应该懂
2和3  char arr【3】里面有存放的就是指针也就是存放着3个数组的首地址

请问大佬,123使用起来一样吗?像2能否访问arr[1][1]???
另外如果是如下代码,他们是否还相同?
  1. char arr[][3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
  2. char* arr[3]={“a”,“bc”};
  3. char* arr[3]={{‘a’,’\0’,’b’},{‘b’,’c’,’\0’}};
复制代码
回复

使用道具 举报

7#
ID:908826 发表于 2021-12-7 09:51 | 只看该作者
还是找个书系统学一下这里比较好
回复

使用道具 举报

8#
ID:976493 发表于 2021-12-7 10:18 | 只看该作者
找个C语言书或者视频教程,讲得很详细的
回复

使用道具 举报

9#
ID:879924 发表于 2021-12-7 16:31 来自触屏版 | 只看该作者
在学这一段,但是书里面没有讲到这些。
回复

使用道具 举报

10#
ID:879924 发表于 2021-12-7 16:31 来自触屏版 | 只看该作者
在写,但是书里没有讲到这些。
回复

使用道具 举报

11#
ID:592807 发表于 2021-12-8 09:08 | 只看该作者
macboa 发表于 2021-12-7 08:41
请问大佬,123使用起来一样吗?像2能否访问arr[1][1]???
另外如果是如下代码,他们是否还相同?

不能。编译器不认可,会报错的,编译器没检测到二维数组,你直接调用二维数组是会报错的。
(*)(arr[0] + 1) 。
arr[0]就是你所说的arr[0][0],但是arr是指针型的变量,所以arr[0]是指针你不能直接调用,需要加上*
arr[0] + 1就是指针后移一位,也就是arr[0][1],同样也是指针,所以要加*
回复

使用道具 举报

12#
ID:989756 发表于 2021-12-8 19:44 | 只看该作者
1.第一行的二维数组是标准的二维数组初始化,也就是元素逐个存放。
回复

使用道具 举报

13#
ID:839438 发表于 2021-12-9 11:02 | 只看该作者
macboa 发表于 2021-12-7 08:41
请问大佬,123使用起来一样吗?像2能否访问arr[1][1]???
另外如果是如下代码,他们是否还相同?

如果使用的相同的代码,会报错,我就是这样被报错了很久,
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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