函數的返回值是指針

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int num1 = 10;
int num2 = 20;

int *go()				//go()的返回值是一個指針(地址)
{

	return &num1;
}
void  main1()
{
	printf("%d\n", *go());

	system("pause");
}

//使用隨機數生成一個數組,寫一個函數查找最小的數,並返回最小數的地址,在主函數中打印出最小數。
int *mindata(int num[], int n)
{
	//int min = 0;
	//for (int i = 1; i < n; i++)
	//{
	//	if (num[i] < num[min])
	//	{
	//		min = i;
	//	}
	//}
	//return num + min;

	int *min = num;
	for (int i = 1; i < 10; i++)
	{
		if (*(num + i) < *(min))
		{
			min = num + i;
		}
	}
	return min;

}

void main()
{
	int num[10];
	time_t ts;
	srand((unsigned int)time(&ts));

	for (int i = 0; i < 10; i++)
	{
		num[i] = rand() % 100;
		printf("%d\n", num[i]);
	}

	printf("其中的最小值爲:%d\n", *mindata(num, 10));

	printf("------------------------------------------\n");

	*mindata(num, 10) = 1000;				//用途:可以根據地址修改指定的數據
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", num[i]);
	}

	system("pause");
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章