C语言学习

C语言
数组学习

#include <stdio.h>

/*strlen 是求字符串长度的,只针对字符串求长度-库函数-得使用头文件
  sizeof 计算变量,数组,数据类型的大小,单位是字节-操作符
int main(){
	char arr1[10] = { 'h','e','l','l','o' };
	char arr2[10] = "hello";
	char arr3[] = "world";
	int arr4[10] = { 1,2,3 };
	printf("%d\n", sizeof(arr3));
	//sizeof 计算arr3所占空间大小 总共六个元素 6*1=6;
	printf("%d\n", strlen(arr3));
	//strlen 计算arr3字符串的长度即求"\0"之前的字符串

	return 0;

}
*/
/*int main() {
	char arr1[] = "abc";
	char arr2[] = { 'a','b','c' };
	printf("%d\n", sizeof(arr1));
	printf("%d\n", sizeof(arr2));
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	//会出现一个随机值,因为arr2在遇到"\0"的时候才会结束
	//但是我们不能知道什么时候会遇到"\0",所以答案为4 3 3 15(15是个随机值)
	return 0;
}*/
/*int main() {
	int i=0;
	int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
	int sz = sizeof(arr)/sizeof(arr[0]);
	printf("%d\n", sz);
	for (i; i < sz; i++) {
		printf("%d ", arr[i]);
	}

	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; i < sz; i++) {
		printf("&arr[%d]=%p\n", i, &arr[i]);

	}
}*/
/*int main() {
	int arr[3][4] = { 1,2,3,4,5 };
	int arr1[3][4] = { 1,2,3,4,5 };
	int arr2[][4] = { {1,2,3,4},{5,6,7,8} };
	int i, j;
	for (int i = 0; i < 3; i++) {
		for (int j = 0; j < 4; j++) {
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
	return 0;
}*/
/*int main() {
	int arr[3][4] = { 1,2,3,4,5 };
	int arr1[3][4] = { 1,2,3,4,5 };
	int arr2[][4] = { {1,2,3,4},{5,6,7,8} };
	int i, j;
	for (int i = 0; i < 3; i++) {
		for (int 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, j;
	int temp = 0;
	//需要多少趟冒泡排序
	for (i = 0; i < sz-1; i++) {
		int flag = 1;//假设已经有序
		//每一趟需要多少对排序
		for (j = 0; j <sz-1-i ; j++) {
			if (arr[j] > arr[j + 1]) {
				temp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = temp;
				flag = 0;//说明本趟排序并不完全有序
			}
		}
		if (flag == 1) {
			break;
		}
	}
	
}
int main() {
	int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	//arr是数组,我们对数组arr进行传参,实际上传递过去的是数组arr首元素的地址&arr[0]
	bubble_sort(arr,sz);//冒泡排序函数
	for (int i = 0; i < sz; i++) {
		printf("%d\n", arr[i]);
	}
	return 0;
}*/
int main() {
	int arr [6] = { 1,2,3,4,5,6 };
	//sizeof(数组名)-数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节
	//2.&数组名,数组名代表整个数组,&数组名,取出的是整个数组的地址
	printf("%p\n", arr);//输出的地址是数组首元素的地址
	printf("%p\n", arr+1);
	printf("%p\n", &arr[0]);//输出的地址是数组首元素的地址
	printf("%p\n", &arr[0] + 1);
	printf("%p\n", &arr);//输出的地址是数组的地址
	printf("%p\n", &arr + 1);

	printf("%d\n", *arr);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值