
A[B]这种写法是取二维数组第A行的下标为0的地址。其中A必须是正整数,表示数组的某一行,B必须是行指针。这里因为arr是一维数组,&arr就把arr就了二维数组指针,1[&arr]就是第1行(从0行起算)下标为0的那个元素的指针,实际上就是指向13后面那个元素的指针(虽然越界了,但指针指向一下是安全的,并没有写数据)。那么代码中p从arr开始循环到<1[&arr](即13后面的地址)就遍历了一维数组arr。你可以试验一下:定义成arr[][7]={{1,1,2,3,5,8,13},{10,10,20,30,50,80,130}};,若要遍历这个数组,写for(int p=arr[0];p<1[arr];p++) cout << p << endl;就只输出1,1,2,3,5,8,13这一行,而写p<2[arr]两行就都输出了。且这里不在[]里的arr前加&,因为arr本身就是一个二维数组。看出来了吧?实际上1[&arr]与(&arr)[1]等价!C++有很多同一个意思的不同表达都是语法允许的,比如int s=3;和int s(3);就是同一个意思……
(帮助了你的话,请采纳)
声明,初始化,赋值一句完成:
int[] arr = new int[]{2,3,56,8,9,10};
最大值 var result = arrMax();
最小值 var result = arrMin();
和与乘积,一个for循环搞定啦。
#include "stdioh"
int main(void){
int a[]={1,2,3,4,5,6,7,8,9,10},tmp,i,n;
printf("Input n\nn=");
scanf("%d",&n);
while(n-->=0)
for(i=1;i<10;tmp=a[i-1],a[i-1]=a[i],a[i++]=tmp);
for(i=0;i<10;printf("%d ",a[i++]));
printf("\n");
return 0;
}
以上就是关于如图,看见别人在c++中这样使用方括号,请问这是什么用法请解释这段程序在干什么,以及给出类似用法全部的内容,包括:如图,看见别人在c++中这样使用方括号,请问这是什么用法请解释这段程序在干什么,以及给出类似用法、C#编程~1.求一维数组的声明,初始化,赋值,遍历2.求数组所有元素的和,乘积,最大值,最小值!(、编写程序,实现一维数组的循环位移。例如,数组内容为1.2.3.4.5.6.7.8.9.10.输入3等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)