请高手解释C语言语法,送分帖,该怎么解决
请高手解释C语言语法,送分帖
LONG alSubscript[24][4][2];
LONG (*p1)[4][2] = alSubscript;
LONG ((*p2)[4])[2] = alSubscript;
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
LONG (*p3[4])[2] = {0, aPPP, 0, 0};
在C语言档里能找到上面的定义吗?
C/C++也太灵活了,被弄迷糊了
------解决方案--------------------
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};这个定义是有的,就里一个普通的定义嘛
LONG (*p1)[4][2] = alSubscript;这个定义是指向数组的指针
------解决方案--------------------
其他的没见过,虽然能编译通过,但阅读比较困难啊。
建议楼主不要用这种方式,个人觉得也没必要研究这样的表达式啊。仅供参考
------解决方案--------------------
LONG alSubscript[24][4][2];
LONG (*p1)[4][2] = alSubscript;
定义了一个指向数组的指针,该数组的每个元素是一个二维数组(有4行,2列)
LONG ((*p2)[4])[2] = alSubscript;
LONG (*p)[4]定义了一个指向行指针,每行有4个元素,而每个元素又是一个有2个元素的一维数组,所与可看作与上面的定义相似。
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
LONG (*p3[4])[2] = {0, aPPP, 0, 0};
定义了一个有4个元素的指针数组,该指针指向一个有2个LONG元素的一维数组。
------解决方案--------------------
jf up
------解决方案--------------------
up
------解决方案--------------------
kookworm() 已经回答了帮UP一下
------解决方案--------------------
!
------解决方案--------------------
LONG alSubscript[24][4][2];
LONG (*p1)[4][2] = alSubscript;
//一个指向二维数组的指针
LONG ((*p2)[4])[2] = alSubscript;
//一个指向一维数组的指针的指针
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
LONG (*p3[4])[2] = {0, aPPP, 0, 0};
//一个指向一维数组的指针的指针数组
=================================================================
LONG在 <windows.h> 里有定义
------解决方案--------------------
jf
------解决方案--------------------
LONG (*p1)[4][2] = alSubscript;
LONG ((*p2)[4])[2] = alSubscript;
这两个是一样的
---------------------------------
恩,没错,这两个是完全一样的。
在C语言中,其实没有所谓的 "多维数组 ", 都是 "数组的数组 "
p1是一个指针,指向一个包含4个元素的数组,其中的每个元素是一个包含2个LONG元素的数组.
解析这种定义的方法就是所谓“右左右”法则,实际上根据的就是C语言的优先级规则.
------解决方案--------------------
UP
------解决方案--------------------
LONG alSubscript[24][4][2];
//alSubscript is
//an array with 24 elements, each one of them is
//an array with 4 elements, each one of them is
//an array with 2 elements, each one of them is
//a LONG
LONG (*p1)[4][2] = alSubscript;
//p1 is
//a pointer, which point to
//an array with 4 elements, each one of them is
//an array with 2 elements, each one of them is
//a LONG
LONG ((*p2)[4])[2] = alSubscript;
//p1 is
//a pointer, which point to
//an array with 4 elements, each one of them is
//an array with 2 elements, each one of them is
//a LONG
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
//alArray is
//an array with 5 elements, each one of them is
//an array with 2 elements, each one of them is
LONG alSubscript[24][4][2];
LONG (*p1)[4][2] = alSubscript;
LONG ((*p2)[4])[2] = alSubscript;
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
LONG (*p3[4])[2] = {0, aPPP, 0, 0};
在C语言档里能找到上面的定义吗?
C/C++也太灵活了,被弄迷糊了
------解决方案--------------------
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};这个定义是有的,就里一个普通的定义嘛
LONG (*p1)[4][2] = alSubscript;这个定义是指向数组的指针
------解决方案--------------------
其他的没见过,虽然能编译通过,但阅读比较困难啊。
建议楼主不要用这种方式,个人觉得也没必要研究这样的表达式啊。仅供参考
------解决方案--------------------
LONG alSubscript[24][4][2];
LONG (*p1)[4][2] = alSubscript;
定义了一个指向数组的指针,该数组的每个元素是一个二维数组(有4行,2列)
LONG ((*p2)[4])[2] = alSubscript;
LONG (*p)[4]定义了一个指向行指针,每行有4个元素,而每个元素又是一个有2个元素的一维数组,所与可看作与上面的定义相似。
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
LONG (*p3[4])[2] = {0, aPPP, 0, 0};
定义了一个有4个元素的指针数组,该指针指向一个有2个LONG元素的一维数组。
------解决方案--------------------
jf up
------解决方案--------------------
up
------解决方案--------------------
kookworm() 已经回答了帮UP一下
------解决方案--------------------
!
------解决方案--------------------
LONG alSubscript[24][4][2];
LONG (*p1)[4][2] = alSubscript;
//一个指向二维数组的指针
LONG ((*p2)[4])[2] = alSubscript;
//一个指向一维数组的指针的指针
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
LONG (*p3[4])[2] = {0, aPPP, 0, 0};
//一个指向一维数组的指针的指针数组
=================================================================
LONG在 <windows.h> 里有定义
------解决方案--------------------
jf
------解决方案--------------------
LONG (*p1)[4][2] = alSubscript;
LONG ((*p2)[4])[2] = alSubscript;
这两个是一样的
---------------------------------
恩,没错,这两个是完全一样的。
在C语言中,其实没有所谓的 "多维数组 ", 都是 "数组的数组 "
p1是一个指针,指向一个包含4个元素的数组,其中的每个元素是一个包含2个LONG元素的数组.
解析这种定义的方法就是所谓“右左右”法则,实际上根据的就是C语言的优先级规则.
------解决方案--------------------
UP
------解决方案--------------------
LONG alSubscript[24][4][2];
//alSubscript is
//an array with 24 elements, each one of them is
//an array with 4 elements, each one of them is
//an array with 2 elements, each one of them is
//a LONG
LONG (*p1)[4][2] = alSubscript;
//p1 is
//a pointer, which point to
//an array with 4 elements, each one of them is
//an array with 2 elements, each one of them is
//a LONG
LONG ((*p2)[4])[2] = alSubscript;
//p1 is
//a pointer, which point to
//an array with 4 elements, each one of them is
//an array with 2 elements, each one of them is
//a LONG
LONG alArray[5][2] = {{1, 2}, {2, -1}, {0, 3}, {1, -1}, {1, -1}};
//alArray is
//an array with 5 elements, each one of them is
//an array with 2 elements, each one of them is