因为这两天有事情要处理,没有及时更新。
今天学习了数组的知识,一维数组和二维数组的创建以及使用和内存中怎样存储,最后学习了数组在函数中传参,具体看一下代码:
#include<stdio.h>
//int main() {
// //创建一个数组整型,存放十个整型数据
// int arr[10] = { 1,2,3 };//不完全初始化数组,剩下的默认为0
// char arr2[5] = { ‘a’,‘b’ };
// char arr3[5] = “ab”;
// char arr4[] = “abcdef”;
// printf("%d\n", sizeof(arr4));//求数组arr4所占空间的大小,7*1=7
// printf("%d\n", strlen(arr4));//求字符串的长度,\0结束标志,所以为6
// return 0;
//}
//1.strlen和sizeof没有关联
//2.strlen是用来求字符串长度,它只求字符串长度-库函数,要引用头文件
//3.sizeof计算变量、数组、类型的大小-单位是字节—操作符
//int main() {
// char arr[] = “abc”;
// char arr2[] = { ‘a’,‘b’,‘c’ };
// printf("%d\n", sizeof(arr));//4
// printf("%d\n", sizeof(arr2));//3
// printf("%d\n", strlen(arr));//3
// printf("%d\n", strlen(arr2));//随机
// return 0;
//}
//int main() {
// char arr1[] = “abcdef”;
// int len = strlen(arr1);
// int i = 0;
// for (i = 0; i < len; i++) {
// printf("%c “, arr1[i]);
// }
// int arr2[] = { 1,2,3,4,5,6,7,8,9,0 };
// int sz = sizeof(arr2) / sizeof(arr2[0]);
// int j = 0;
// for (j = 0; j < sz; j++) {
// printf(”%d ", arr2[j]);
// }
// return 0;
//}
//int main() {
// int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
// int sz = sizeof(arr) / sizeof(arr[0]);
// int i = 0;
// for (i = 0; i < sz; i++) {
// printf("&arr[%d]=%p\n", i, &arr[i]);//数组在内存中存放的地址是连续的
// }
// return 0;
//}
//int main() {
// int arr[3][4] = { {1,2,3},{4,5} };//3行4列
// int i = 0;
// for (i = 0; i < 3; i++) {
// int j = 0;
// for (j = 0; j < 4; j++) {
// printf("%d “, arr[i][j]);
// }
// printf(”\n");
// }
// char arr2[4][5];
// int arr3[][4] = { {1,2,3,4},{5,6,7,8} };//行可以省略,列不行
// return 0;
//}
//int main() {
// int arr[3][4] = { {1,2,3},{4,5} };//3行4列
// int i = 0;
// for (i = 0; i < 3; i++) {
// int j = 0;
// for (j = 0; j < 4; j++) {
// printf("&arr[%d][%d]=%p\n", i, j, &arr[i][j]);//二位数组在内存中存储,
// //其实是一行存储后,后面紧跟下一行,所以存储也是连续的
// }
// }
// return 0;
// }
//void bubble_sort(int arr[], int sz) {
// int i = 0;
// //确认好多趟冒泡排序
// for (i = 0; i < sz-1; i++) {
// int flag = 0;//假设这一趟要排序的数据已经有序
// int j = 0;
// //每一趟冒泡排序
// 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 = 0;//本趟排序的数据不完全有序
// }
// }
// if (flag == 1) {
// break;
// }
// }
//}
//int main() {
// int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
// //对数组进行升序
// //冒泡排序–就是相邻的两个数据比较,不符合的就后移,一直比较完
// int sz = sizeof(arr) / sizeof(arr[0]);
// //数组在作为函数参数时,传递的是首元素的地址
// bubble_sort(arr,sz);
// int i = 0;
// for (i = 0; i < sz; i++) {
// printf("%d ", arr[i]);
// }
// return 0;
//}
//int main() {
// if (1)
// break;
//break只能用于循环和开关(switch)中使用
// return 0;
//}
int main() {
int arr[] = { 1,2,3,4,5,6,7 };
/int sz = sizeof(arr) / sizeof(arr[0]);/
//1.sizeof(数组名)-数组名表示整个数组,此时求的是整个数组名的大小,单位字节
//2.&数组名,数组名代表整个数组,&取出整个数组的地址
//除了这两种情况以外,数组名表示数组首元素的地址
printf("%p\n",arr);
printf("%p\n", arr + 1);
printf("%p\n", &arr[0] + 1);
printf("%p\n", &arr[0]);
printf("%p\n", &arr + 1);
printf("%p\n", &arr);
/*printf("%p\n", arr);
printf("%p\n", &arr[0]);
printf("%d\n", *arr);*/
return 0;
}