Arrays 不使用方括号初始化整数数组
我试图在不使用[]方括号的情况下初始化c中的int数组。据我所知,int A[n]相当于int*(A+n)。我试着像这样初始化数组。然而,它不起作用Arrays 不使用方括号初始化整数数组,arrays,c,pointers,syntax,Arrays,C,Pointers,Syntax,我试图在不使用[]方括号的情况下初始化c中的int数组。据我所知,int A[n]相当于int*(A+n)。我试着像这样初始化数组。然而,它不起作用 什么时候使用这种表示法,即int*(a+n),我们如何在不使用方括号的情况下进行初始化、扫描和打印?通常,如果不需要方括号,就不需要使用数组。你在这里找指针。分配所需内存字节的最简单方法是使用malloc(),然后可以使用类似*(p+i)的语法从用户获取数据或显示输出 这里有一个: 注意:这并不意味着数组不好。您可以用或替换{和} 以下三种说法是
什么时候使用这种表示法,即int*(a+n),我们如何在不使用方括号的情况下进行初始化、扫描和打印?通常,如果不需要方括号,就不需要使用数组。你在这里找指针。分配所需内存字节的最简单方法是使用
malloc()
,然后可以使用类似*(p+i)
的语法从用户获取数据或显示输出
这里有一个:
注意:这并不意味着数组不好。您可以用或替换
{
和}
以下三种说法是等效的:
foo[bar] = baz[quux] + zxc[spqr];
foo<:bar:> = baz<:quux:> + zxc<:spqr:>;
foo??(bar??) = baz??(quux??) + zxc??(spqr??);
foo[bar]=baz[qux]+zxc[spqr];
foo=baz+zxc;
foo??(bar??)=baz??(qux??)+zxc??(spqr??);
感谢您的支持。
*(a+n)
与a[n]
除了在声明中之外,其他地方都是一样的int*(a+n)
不是有效的声明。你可以做int*a=malloc(n*sizeof(int))
,但记住在完成时释放内存。编写C代码时避免使用[]括号就像在建房子时避免使用锤子一样。你当然可以,但何必费心呢。@user3386109这是我尝试的一个问题中的一个限制。谢谢你的帮助。
Enter 0th position value: 5
Enter 1th position value: 3 // (correct to 1st)
Enter 2th position value: 8 // (correct to 2nd)
Enter 3th position value: 6 // (correct to 3rd)
Enter 4th position value: 3
5
3
8
6
3
foo[bar] = baz[quux] + zxc[spqr];
foo<:bar:> = baz<:quux:> + zxc<:spqr:>;
foo??(bar??) = baz??(quux??) + zxc??(spqr??);