标题: 请教c语言一维指针(字符串)数组和二维字符数组的区别 [打印本页]

作者: macboa    时间: 2021-12-6 19:03
标题: 请教c语言一维指针(字符串)数组和二维字符数组的区别
  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’}};
复制代码
请问这三个初始化的具体区别和不同

作者: 黄youhui    时间: 2021-12-7 08:32
1 普通的二维数组,你应该懂
2和3  char arr【3】里面有存放的就是指针也就是存放着3个数组的首地址
作者: macboa    时间: 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’}};
复制代码

作者: macboa    时间: 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’}};
复制代码

作者: macboa    时间: 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’}};
复制代码

作者: macboa    时间: 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’}};
复制代码

作者: 13205495918    时间: 2021-12-7 09:51
还是找个书系统学一下这里比较好
作者: 996256177    时间: 2021-12-7 10:18
找个C语言书或者视频教程,讲得很详细的

作者: macboa    时间: 2021-12-7 16:31
在学这一段,但是书里面没有讲到这些。
作者: macboa    时间: 2021-12-7 16:31
在写,但是书里没有讲到这些。
作者: 黄youhui    时间: 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],同样也是指针,所以要加*
作者: 51hei08    时间: 2021-12-8 19:44
1.第一行的二维数组是标准的二维数组初始化,也就是元素逐个存放。
作者: 我会想你的    时间: 2021-12-9 11:02
macboa 发表于 2021-12-7 08:41
请问大佬,123使用起来一样吗?像2能否访问arr[1][1]???
另外如果是如下代码,他们是否还相同?

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1