配列が空に初期化され、逆位置(関数法)

配列が空に初期化され、逆位置(関数法)

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>

//初始化数组
void init(int arr[], int sz, int x)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		arr[i] = x;

	}
}
//打印数组
void print_f(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i <sz; i++)
	{
		printf("%d ", arr[i]);
	}
}
//清空数组
void empty(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		arr[i] = 0;
	}
}
int main()
{


	int arr[10] = { 2, 4, 6, 8, 0, 1, 3, 5, 7, 9 };
	int sz = sizeof(arr) / sizeof(arr[0]);

	
	printf("请输入初始化的值\n");
	int n = 0;
	scanf("%d", &n);
	
	init(arr, sz, n);//初始化数组
	print_f(arr, sz);//打印数组
	printf("\n");
	printf("以下为清空数组\n");//自定义清空数组就是把数组的值改为0
	empty(arr, sz);
	print_f(arr, sz);
	
	system("pause");
	return 0;
}

ここに画像を挿入説明

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>

//逆置数组  两两交换
void reverse(int arr[], int sz)
{
    int left = 0;
	int right = sz - 1;
	while (left<right)
	{
		int temp = 0;
		temp = arr[left];
		arr[left] = arr[right];
		arr[right] = temp;
		left++;
		right--;
	}
	
	
}
int main()
{
    int arr[10] = { 2, 4, 6, 8, 0, 1, 3, 5, 7, 9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
   printf("以下为数组逆置\n");
	reverse(arr, sz);
	print_f(arr, sz); 
    system("pause");
	return 0;
}

ここに画像を挿入説明
逆アレイのコアセット二十2つのExchangeであります

説明

実際に渡された1アレイ送信パラメータ群最初のエレメントのアドレスである
パラメータはポインタでなければならないようにします。int型ARR []その本質はポインタです。
2。INT実際4バイトであり、32ビットプラットフォーム上で[] ARR
64ビットの8つのバイト
サイズは、機能内に必要に応じて
INT SZ =はsizeof(ARR)/はsizeof(ARR [0]);
。。4 / = 1.4
従って長さは1バイトであります

重要な結論

配列要素の内部機能取得数は、パラメータの一部ではありません

公開された22元の記事 ウォンの賞賛5 ビュー3202

おすすめ

転載: blog.csdn.net/weixin_45271990/article/details/104346814