当前位置:  开发笔记 > 编程语言 > 正文

C C++数组....需要帮助理解代码

如何解决《CC++数组.需要帮助理解代码》经验,为你挑选了2个好方法。

你能解释一下这段代码吗?这对我来说似乎有点混乱"a"是一个双阵列?我认为它只是一个整数,但在cout语句中它被用作双数组.同样在for循环条件中它表示<3 [b]/3-3,这对我没有意义,但是代码编译并运行.我只是在理解它时遇到了麻烦,对我来说,语法似乎不正确

int a,b[]={3,6,5,24};
char c[]="This code is really easy?";
for(a=0;a<3[b]/3-3;a++)
{
cout<

Anon... 7

数组访问器几乎是指针算术的语法糖.a[b]相当于b[a]相当于*(a+b).

也就是说,使用index[array]而不是array[index]完全可怕,你永远不应该使用它.



1> Anon...:

数组访问器几乎是指针算术的语法糖.a[b]相当于b[a]相当于*(a+b).

也就是说,使用index[array]而不是array[index]完全可怕,你永远不应该使用它.


我认为这是我第一次看到有人说为什么a [b]和b [a]是等价的...现在看来它显得非常明显,但看到它写成*(a + b)经过多年的C编码后,语法终于明白了.
@Anon:有一次我使用`index [array]`形式 - 在一个宏中获取数组中元素的数量.使用`index [array]`形式可以防止表达式意外地为一个重载'`[]`'运算符的C++类工作(诚然,这是一个非常专业的用法).

2> John Knoelle..:

哇.这真的很时髦.这不是真正的二维数组.它的工作原理是因为它c是一个数组,并且在C语言中有一个对待它的标识

b[3]

和此一样

3[b]

所以这段代码转换成一个循环,增加一段时间,a < (24/3-3)因为3[b]b[3]与b [3]是24相同.然后它使用a[b](它是相同的b[a])作为数组c的索引.

所以,这段代码没有混淆

int a;
int b[] = {3,5,6,24}
char c[] = "This code is really easy?";
for (a = 0; a < 5; a++)
{
    cout << c[b[a]];
}

因为b [4]不存在而被破坏,所以输出应该是字符串c的第3,第5,第6和第24个字符或者

sco?

然后是一些随机字符或崩溃.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有