c语言提供三种定义数组的方式:
第一种:
int arr[5]={1,2,3,4,5};
第二种:
int arr[5];
arr[0]=1;
arr[1]=2;
....
arr[4]=5;
第三种:
int arr[]={1,2,3,4,5,6};
其中第一种第二种已经显示的给出了数组长度,第三种写法怎么知道数组长度?
另外声明数组的类型的时候为什么是int
int arr[5];
c语言提供三种定义数组的方式:
第一种:
第二种:
int arr[5];
arr[0]=1;
arr[1]=2;
....
第三种:
int arr[]={1,2,3,4,5,6};
其中第一种第二种已经显示的给出了数组长度,第三种写法怎么知道数组长度?
另外声明数组的类型的时候为什么是int
int arr[5];
声明数组的类型的时候为什么是int arr[5];
因为c的语法就这样规定的.. c有很多这种用 "和使用时相似的" 语法定义的类型. 比如
// "*pa是int", 那么pa是指向int的指针
int *pa;
// "arr[int]是long", 那么arr是long数组
long arr[int];
是不是学js,py这种语言学多了。。。。。
int a[5]=={1,2,3,4,5};
int a[]={1,2,3,4,5};
两种写法都可以,至于后者的写法怎么知道数组长度?这c/c++会自动根据 { } 内元素个数得到这个长度,记住就行了,没什么好说的这个。
10 回答11.1k 阅读
1 回答3.3k 阅读
1k 阅读
看多点书吧,像这种int arr[]={1,2,3,4,5,6};是初始化数组会自动分配内存的,比较推荐这种写法。
楼上已提出求解数组长度做法:sizeof(arr) / sizeof(arr[0]),但这种一般是在主函数里面才能求,如果arr作为参数传递给子函数的话,数组名将会转换成指针形式传递,因此这种求解就有错误了。