你能解释一下这段代码吗?这对我来说似乎有点混乱"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<<a[b][c];
}
Run Code Online (Sandbox Code Playgroud)
数组访问器几乎是指针算术的语法糖.a[b]相当于b[a]相当于*(a+b).
也就是说,使用index[array]而不是array[index]完全可怕,你永远不应该使用它.
哇.这真的很时髦.这不是真正的二维数组.它的工作原理是因为它c是一个数组,并且在C语言中有一个对待它的标识
b[3]
Run Code Online (Sandbox Code Playgroud)
和此一样
3[b]
Run Code Online (Sandbox Code Playgroud)
所以这段代码转换成一个循环,增加一段时间,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]];
}
Run Code Online (Sandbox Code Playgroud)
因为b [4]不存在而被破坏,所以输出应该是字符串c的第3,第5,第6和第24个字符或者
sco?
Run Code Online (Sandbox Code Playgroud)
然后是一些随机字符或崩溃.