由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 谁给解释一下这个c question
相关主题
数组指针的问题Array in C
问一个 char * 和 char [] 的问题C++ Q05: pointer to constant variable
出个题考考大家:)请教一个关于字符指针的简单问题
typedef const char *month Table[3][合集] 一个指针的小问题
JHQ的一道指针题。C++一问
int *a [] 和int (*a)[] 一样吗请教一个const pointer的问题
C 语言,初学者问题(4),读取字符指针内容c++ template specialization 参数
difference between: char** p and char*p[] ??question about const reference
相关话题的讨论汇总
话题: char话题: 12话题: array话题: 数组话题: 指针
进入Programming版参与讨论
1 (共1页)
h****b
发帖数: 157
1
这类题见过几次了,都不太明白,哪位xdjm给说说?
先谢了
Char **array[12][12][12]
Referring to the array above, which one of the following definitions and
initializations ofp is valid?
char ***** p = array;
char * (* p) [12][12][12] = array;
const char ** p [12][12][12] = array;
char (** p) [12][12] = array;
char ** (* p) [12][12] = array;
t****t
发帖数: 6806
2
试试不就知道了

【在 h****b 的大作中提到】
: 这类题见过几次了,都不太明白,哪位xdjm给说说?
: 先谢了
: Char **array[12][12][12]
: Referring to the array above, which one of the following definitions and
: initializations ofp is valid?
: char ***** p = array;
: char * (* p) [12][12][12] = array;
: const char ** p [12][12][12] = array;
: char (** p) [12][12] = array;
: char ** (* p) [12][12] = array;

h****8
发帖数: 599
3
Char **array[12][12][12] 三维数组,元素是char**
char ***** p = array; p是5维指针,从数组到指针的转换是可以。所以我认为这个对的
char * (* p) [12][12][12] = array; p是指针,指向一个三维数组,数组元素是char
*,所以错
const char ** p [12][12][12] = array; p是三维数组,元素类型是const char**,我
觉得这里non-const应该不能转换成const,因为是元素而不是指针,所以也错
char (** p) [12][12] = array; p是二维指针,指向一个二维数组,元素类型为char,
很明显连dimension都不对
char ** (* p) [12][12] = array;p是一个指针,指向一个二维数组,元素类型为char
**,与array所指向的数组类型不同 不能赋值
所以只有1是对的我认为。
X****r
发帖数: 3557
4
你错了。
和你说了试一下就知道了,一分钟的事情。

对的
char
char,
char

【在 h****8 的大作中提到】
: Char **array[12][12][12] 三维数组,元素是char**
: char ***** p = array; p是5维指针,从数组到指针的转换是可以。所以我认为这个对的
: char * (* p) [12][12][12] = array; p是指针,指向一个三维数组,数组元素是char
: *,所以错
: const char ** p [12][12][12] = array; p是三维数组,元素类型是const char**,我
: 觉得这里non-const应该不能转换成const,因为是元素而不是指针,所以也错
: char (** p) [12][12] = array; p是二维指针,指向一个二维数组,元素类型为char,
: 很明显连dimension都不对
: char ** (* p) [12][12] = array;p是一个指针,指向一个二维数组,元素类型为char
: **,与array所指向的数组类型不同 不能赋值

h****b
发帖数: 157
5
答案是5,我试过了。只是不知道怎么解释。知道的请不吝赐教!!
X****r
发帖数: 3557
6
C的规则是:某类型的数组可以转化成同类型的指针。多维数组就是数组的数组。
所以你这里array是字符的指针的指针的数组的数组的数组,唯
一可以转化成的就是字符的指针的指针的数组的数组的指针,即
char **(*)[12][12]

【在 h****b 的大作中提到】
: 答案是5,我试过了。只是不知道怎么解释。知道的请不吝赐教!!
z****e
发帖数: 2024
7
orz

【在 X****r 的大作中提到】
: C的规则是:某类型的数组可以转化成同类型的指针。多维数组就是数组的数组。
: 所以你这里array是字符的指针的指针的数组的数组的数组,唯
: 一可以转化成的就是字符的指针的指针的数组的数组的指针,即
: char **(*)[12][12]

z****e
发帖数: 2024
8
master师傅好久不来了?

【在 t****t 的大作中提到】
: 试试不就知道了
X****r
发帖数: 3557
9
还好不是master乌龟……

【在 z****e 的大作中提到】
: master师傅好久不来了?
z****e
发帖数: 2024
10
经常缩着头,就变乌龟了吧。

【在 X****r 的大作中提到】
: 还好不是master乌龟……
相关主题
int *a [] 和int (*a)[] 一样吗Array in C
C 语言,初学者问题(4),读取字符指针内容C++ Q05: pointer to constant variable
difference between: char** p and char*p[] ??请教一个关于字符指针的简单问题
进入Programming版参与讨论
d***i
发帖数: 344
11
大拿...orz
赶紧去复习了一下tcpl的多维数组...

【在 X****r 的大作中提到】
: C的规则是:某类型的数组可以转化成同类型的指针。多维数组就是数组的数组。
: 所以你这里array是字符的指针的指针的数组的数组的数组,唯
: 一可以转化成的就是字符的指针的指针的数组的数组的指针,即
: char **(*)[12][12]

t****t
发帖数: 6806
12
赞你的肺活量!

【在 X****r 的大作中提到】
: C的规则是:某类型的数组可以转化成同类型的指针。多维数组就是数组的数组。
: 所以你这里array是字符的指针的指针的数组的数组的数组,唯
: 一可以转化成的就是字符的指针的指针的数组的数组的指针,即
: char **(*)[12][12]

t****t
发帖数: 6806
13
教你一个偷懒的办法: 找个unix, 运行cdecl
cdecl> explain char **arr[12][12][12]
declare arr as array 12 of array 12 of array 12 of pointer to pointer to
char
cdecl> explain char ** (* p) [12][12]
declare p as pointer to array 12 of array 12 of pointer to pointer to char

【在 h****b 的大作中提到】
: 答案是5,我试过了。只是不知道怎么解释。知道的请不吝赐教!!
h****b
发帖数: 157
14
niu
h****b
发帖数: 157
15
GOT IT..有点意思。

char

【在 t****t 的大作中提到】
: 教你一个偷懒的办法: 找个unix, 运行cdecl
: cdecl> explain char **arr[12][12][12]
: declare arr as array 12 of array 12 of array 12 of pointer to pointer to
: char
: cdecl> explain char ** (* p) [12][12]
: declare p as pointer to array 12 of array 12 of pointer to pointer to char

U***y
发帖数: 149
16
what is char**

对的
char
char,
char

【在 h****8 的大作中提到】
: Char **array[12][12][12] 三维数组,元素是char**
: char ***** p = array; p是5维指针,从数组到指针的转换是可以。所以我认为这个对的
: char * (* p) [12][12][12] = array; p是指针,指向一个三维数组,数组元素是char
: *,所以错
: const char ** p [12][12][12] = array; p是三维数组,元素类型是const char**,我
: 觉得这里non-const应该不能转换成const,因为是元素而不是指针,所以也错
: char (** p) [12][12] = array; p是二维指针,指向一个二维数组,元素类型为char,
: 很明显连dimension都不对
: char ** (* p) [12][12] = array;p是一个指针,指向一个二维数组,元素类型为char
: **,与array所指向的数组类型不同 不能赋值

q*c
发帖数: 9453
17
..感觉这不是人干的事情, 有点失去人性了, 呵呵。

【在 z****e 的大作中提到】
: orz
1 (共1页)
进入Programming版参与讨论
相关主题
question about const referenceJHQ的一道指针题。
why int** cannot convert to const int** ?int *a [] 和int (*a)[] 一样吗
a simple C++ questionC 语言,初学者问题(4),读取字符指针内容
请问const myClass &src 和myClass const &src有什么区别?difference between: char** p and char*p[] ??
数组指针的问题Array in C
问一个 char * 和 char [] 的问题C++ Q05: pointer to constant variable
出个题考考大家:)请教一个关于字符指针的简单问题
typedef const char *month Table[3][合集] 一个指针的小问题
相关话题的讨论汇总
话题: char话题: 12话题: array话题: 数组话题: 指针