一维数组:对整型数组初始化、打印、逆置

 一、创建一个整型数组,创建函数,完成对数组:

        1、打印数组内全部元素;

        2、完成数组内元素逆置;

        3、实现初始化数组元素全部为0。

二、重要知识点

        1、函数创建、函数返回值;

        2、一维数组创建和初始化,一维数组的使用,数组传参;

        3、操作符:

                sizeof:计算数据类型所占空间大小的单目运算符;

                []:下标引用操作符。

        4、元素交换:引入新的变量完成元素交换。

三、对整型数组初始化、打印、逆置

(一)、主函数

        首先在主函数中将需要的功能列出。

int main()
{
	//创建整型数组并初始化
	int arr[] = { 3,7,9,1,6,10,5,8,2,4,11 };
	//运用sizeof单目操作符计算数组元素个数
	int sz = sizeof(arr)/sizeof(arr[0]);
	//打印
	print(arr, sz);
	//逆置
	reverse(arr, sz);
	print(arr, sz);
	//将数组元素初始化为0
	init(arr, sz);
	print(arr, sz);
	return 0;
}
1、一维数组创建

        type_t  arr_name  [const_n];

        type_t表示数组中的元素类型, arr_name为数组的名字,const_n用来指定数组的大小。

        注:在C99标准之前,数组的大小必须是常量表达式,在C99之后,数组的大小可以是变量,为了支持变长数组。

int main()
{
	int arr1[5];
	int arr2[];//需要指定数组的大小

	char arr3[5];
	char arr3[];//需要指定数组的大小

	return 0;
}
2、一维数组的初始化
int main()
{
	int arr1[5] = { 1,2,3,4,5 };//完全初始化
	int arr1_1[5] = { 1,2,3 };//不完全初始化,剩下的元素默认为0
	int arr2[] = {1,2,3,4,5 };//在初始化时可不指定数组的大小

	char arr3[5] = {'a','b','c','d','e'};//完全初始化
	char arr3_1[5] = { 'a','b','c' }; //不完全初始化,剩下的元素默认为0
	printf("%d\n", arr3_1[4]);//打印结果为0
	char arr4[] = "abcde";


	//注意区分数组长度和字符串长度
	//数组长度:数组中元素的个数
	//字符串长度:\0之前的元素个数
	char arr5[] = "abcdef";
	char arr6[] = { 'a','b','c','d','e','f' };
	//对于arr5,数组长度为7,字符串长度为6
	//对于arr6,数组长度为6.字符串长度未知,因为不确定\0在哪
	int a = strlen(arr5);
	int b = strlen(arr6);
	printf("%d\n", a);//结果为6
	printf("%d\n", b);//结果随机
	//strlen是一个计算字符串长度的函数,使用时需要引用头文件#include <string.h>,
	//不包含\0,即计算\0之前的字符串长度
	//strlen是计算字符串长度的函数,不能用来计算整型数组的长度。

	return 0;
}

    (1)注意区分数组长度和字符串长度
            数组长度:数组中元素的个数
            字符串长度:\0之前的元素个数

    (2)strlen是一个计算字符串长度的函数,使用时需要引用头文件#include <string.h>,不包含\0,即计算\0之前的字符串长度。
    strlen是计算字符串长度的函数,不能用来计算整型数组的长度。

     (3)sizeof是一个计算数据类型所占空间大小的单目运算符,在计算字符串的空间大小时,包含了结束符\0的位置。

3、一维数组的使用

        一维数组在使用时需要用到:[],下标引用操作符

        (1)在访问数组时,通过下标进行访问,而下标从0开始,如arr[0],在循环中使用arr[i];

        (2)数组的大小可以通过计算得到。

4、数组传参

        数组在传参时,使用函数名就可以。数组在传参,函数参数有两种写法:

        (1)数组,void function(int arr[]);

        (2)指针,void function(int* arr)。

        数组名能表示首元素地址,有两个例外:

        (1)sizeof(函数名),计算整个数组的大小,sizeof内部单独放一个数组名,数组名表示整个数组;

        (2)&数组名,取出的是整个元素的地址,在这里数组名表示整个数组。

        除了上述两种情况外,所有的数组名表示数组首元素的地址。

(二)打印数组内全部元素

//打印数组
void print(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");

}

(三)完成数组内元素逆置

//数组元素逆置
void reverse(int arr[], int sz)
{
	int left = 0;
	int right = sz - 1;
	int tmp = 0;
	while (left <= right)
	{
		tmp = arr[left];
		arr[left] = arr[right];
		arr[right] = tmp;
		left++;
		right--;
	}
}

(四)实现初始化数组元素全部为0

void init(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		arr[i] = 0;
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值