C语言 返回指针的函数--指针函数 int* max(int a)

Posted DQ_CODING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 返回指针的函数--指针函数 int* max(int a)相关的知识,希望对你有一定的参考价值。

定义

strlong示例代码

代码1:

#include<stdio.h>
#include<string.h>
//返回指针的函数

//比较两个字符串,返回更长的字符串
char *strlong(char* a,char* b)
{
	char *p1=&a[0];
	char *p2=&b[0];
	while(true)
	{
		
		if(*p1=='\\0')
		{
			return b;
		}else if(*p2=='\\0')
		{
			return a;
		}

		p1++;
		p2++;
	}

}
int main()
{
	char a[]="ydfrgtdfghjkl;77777";
	char b[]="defrtyuiof";
	char *c=strlong(a,b);
	printf("result=%s\\n",c);
	if(strcmp(c,a)==0)
	{
		printf("a\\n");
	}else if(strcmp(c,b)==0)
	{
		printf("b\\n");
	}
	getchar();
	return 0;
}

代码2:

#include<stdio.h>
#include<string.h>
//返回指针的函数

//比较两个字符串,返回更长的字符串
char *strlong(char* a,char* b)
{
	
	return strlen(a)>=strlen(b)?a:b;
}
int main()
{
	char a[100];
	char b[100];
	printf("a=\\n");
	gets(a);//接收一个字符串
	printf("b=\\n");
	gets(b);
	char *c=strlong(a,b);
	printf("result=%s\\n",c);
	if(strcmp(c,a)==0)
	{
		printf("a\\n");
	}else if(strcmp(c,b)==0)
	{
		printf("b\\n");
	}
	getchar();
	return 0;
}

局部变量

函数在返回地址时,局部变量使用static

c程序内存布局:

案例–随机数

题目:

知识点:

#include<stdlib.h>
随机数函数:rand()
rand() 会随机生成一个位于 0 ~ RAND_MAX(一个很大的数) 之间的整数。
int a = rand() % 10; //产生0~9的随机数,注意10会被整除
rand()%n;//产生0—n-1之间的数

代码

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

//返回指针的函数--随机数

int *random()
{
	static int arr[10];
	int i;
	for(i=0;i<10;i++)
	{
		arr[i]=rand()%100;//0—99之间的数
	}
	return arr;
}


int main()
{
	int i=0;
	//int *arr=random()=arr=&arr[0]=arr[0]的地址
	//%d *arr
	int *arr=random();
	printf("写法1:\\n");
	while(i<10)
	{
		printf("arr[%d]=%d\\n",i,*arr);
		arr++;
		i++;
	}
	printf("写法2:\\n");
	for(i=0;i<10;i++)
	{
		printf("arr[%d]=%d\\n",i,*arr+i);
	}
	getchar();
	return 0;
}

以上是关于C语言 返回指针的函数--指针函数 int* max(int a)的主要内容,如果未能解决你的问题,请参考以下文章

C语言笔记指针函数与函数指针?

C语言_18函数指针与函数指针数组

C语言【函数 数组 指针】利用指针求一维数组的数据元素之和

C语言 函数指针 int(*ptr)(int,int)

C语言学习笔记--函数与指针

c语言函数返回字符串时必须要用指针吗?如果返回结构体呢?函数在返回那些类型值时必须要用指针?