#include <stdio.h>
// 数组:相同数据类型的有序连续存储
int main0501(void)
{
int arr[5] = {1,2,4,9,7}; // 各个元素的地址连续
printf("&arr[0] = %x\n", &arr[0]); // 数组首元素的地址
printf("&arr[1] = %x\n", &arr[1]); // 地址默认16进制
printf("&arr[2] = %x\n", &arr[2]);
printf("&arr[3] = %p\n", &arr[3]); // %p也可以用于打印地址
printf("&arr[4] = %p\n", &arr[4]);
return 0;
}
// 数组名为地址。是数组首元素的地址:arr=&arr[0]
int main0502(void)
{
int arr[5] = { 1,2,4,9,7 }; // 各个元素的地址连续
printf("&arr[0] = %x\n", &arr[0]); // 数组首元素的地址
printf("&arr = %x\n", &arr); // 数组名为地址。是数组首元素的地址:arr=&arr[0]
return 0;
}
// 求数组的元素个数:sizeof(arr)/sizeof(arr[0])
int main0503(void)
{
int arr[5] = { 1,2,4,9,7 };
printf("数组大小:%u\n", sizeof(arr));
printf("数组元素大小:%u\n", sizeof(arr[0]));
printf("数组元素个数:%d\n", sizeof(arr)/sizeof(arr[0]));
return 0;
}
// 数组初始化
int main0504(void)
{
int arr[10] = { 1,2,4,9,7 }; // 剩余未初始化元素,默认为0。
int arr1[10] = { 0 }; // 初始化元素全为0的一个数组
int arr2[] = { 1,2,4,9,7 }; // 编译器自动求取数组个数
int arr3[10]; // 数组元素为随机数
int n = sizeof(arr) / sizeof(arr[0]); // 数组元素个数
for (size_t i = 0; i < n; i++)
{
printf("%d\n", arr[i]);
}
return 0;
}
// 数组逆序
int main0505(void)
{
int arr[] = { 1,2,4,9,7,16 }; // 数组初始化
int len = sizeof(arr) / sizeof(arr[0]); // 数组元素个数
int i = 0; // 数组首元素下标
int temp = 0; // 为了交换使用,临时变量
int j = len-1; // 数组最后一个元素下标
while (i < j)
{
temp = arr[i]; // 三杯水法变量交换
arr[i] = arr[j];
arr[j] = temp;
i++;
j--;
}
// 打印倒序后的数组
for (int k = 0; k < len; k++)
{
printf("%d\n", arr[k]);
}
return 0;
}
// 冒泡排序
int main0506(void)
{
int arr[] = { 1,45,4,9,50,16,18,1}; // 数组初始化
int len = sizeof(arr) / sizeof(arr[0]); // 数组元素个数
int temp = 0; // 临时变量
for (int i = 0; i < len - 1; i++) // 外行控制行
{
for (int j = 0; j < len - 1 - i; j++) // 内行控制列,对比次数
{
if (arr[j] > arr[j + 1]) // 从小到大排序
{
temp = arr[j]; // 三杯水法变量交换
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// 打印排序后的数组
for (int k = 0; k < len; k++)
{
printf("%d\n", arr[k]);
}
return 0;
}
04 C语言基础-------一维数组
最新推荐文章于 2024-07-23 22:52:39 发布