1-31
1. 数组名是什么? 2.数组名是首元素地址#includeint main() { int arr[10] = {1,2,3,4,5}; printf("%pn", arr); printf("%pn", &arr[0]); printf("%dn", *arr); //输出结果 return 0; }
3.补充
两个情况数组名表示整个数组
1. sizeof( 数组名) 计算整个数组的大小, sizeof 内部单独放一个数组名,数组名表示整个数组的字节。 2. & 数组名,取出的是数组的地址。 & 数组名,数组名表示整个数组。int arr[10] = {0}; printf("%dn", sizeof(arr)); //结果是40
对数组进行排序(初)
#includevoid bubble_sort(int arr[], int sz)//形参arr本质是指针 { //确定趟数 int i = 0; int j = 0; for (i = 0; i < sz - 1; i++) { //一趟冒泡排序的过程 for (j = 0; j < sz - 1 - i; j++) { if (arr[j] > arr[j + 1]) { //交换 int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } } int main() { int arr[10]={9,8,7,6,5,4,3,2,1,0}; int i=0; //排序为升序 冒泡排序 //计算数组内元素个数 int sz = sizeof(arr)/sizeof(arr[0]); bubble_sort(arr,sz);//数组传递的时候其实是传递数组首元素的地址 for(i=0;i 对数组进行排序(改良)
考虑本来就是正确的顺序
#includevoid bubble_sort(int arr[], int sz)//形参arr本质是指针 { int i = 0; int j = 0; int flag=0; for (i = 0; i < sz - 1; i++)//确定趟数 { //一趟冒泡排序的过程 for (j = 0; j < sz - 1 - i; j++) { if (arr[j] > arr[j + 1]) { //交换 int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; flag=1;//判断是否交换 } } if(flag==0) break;//对于原来顺序是正确的情况简化计算 } } int main() { int arr[10]={9,8,7,6,5,4,3,2,1,0}; int i=0; //排序为升序 冒泡排序 //计算数组内元素个数 int sz = sizeof(arr)/sizeof(arr[0]); bubble_sort(arr,sz);//数组传递的时候其实是传递数组首元素的地址 for(i=0;i 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)