C语言返回指针的函数,指针函数,让一个函数返回一个字符串

您所在的位置:网站首页 open函数返回指向文件的指针 C语言返回指针的函数,指针函数,让一个函数返回一个字符串

C语言返回指针的函数,指针函数,让一个函数返回一个字符串

2023-08-29 00:51| 来源: 网络整理| 查看: 265

C语言函数返回指针的函数(指针函数)

什么是返回指针的函数

一个函数可以返回一个整形值 字符型值 实型值

1、如果一个函数它的返回值是一个地址(是一个指针的话),这个函数是一个返回值是指针即指针函数。 2、返回的是指针的函数是指针函数

注意函数指针和指针函数是不一样的概念 int (*p)(int,int);//这是是指向函数的指针(指针函数)

返回值为浮点类型,整数,字符

float aver(int a,int b,int c){//返回float类型的值 } int sum(int a,int b){//返回int 类型的值 return a+b; } char fun(char ff){返回char 类型的值 ... }

如何定义返回指针的函数

语法 类型标识符 *函数名 (参数列表) { 语句体; }

在这里插入图片描述

#include //返回的是数组a中最大元素地址 int *max(int a[],int n){ int *p=a,i; for(i=1;i//地址复制 p=&a[i];//在整个循环的过程当中,p始终指向最大元素 得到其最大元素的地址值 } } return p; } /* p-------->10 34 44 5623,34,56,67,78}; printf("%d\n",*max(a,5)); }

在这里插入图片描述

二级C语言考试案例

让一个函数返回一个字符串(如何让函数返回字符串) 注意以下几点

1、字符串是地址(主要) 2、让一个函数返回一个字符串,实际就是让函数返回一个地址(即指针) 3、这个函数一定要定义成为返回指针的函数 4、返回字符串一般的个数: 格式: char *函数名(参数){ 代码; return “字符串”; } 5、以后要把char *p中的 *p

//为什么字符串是地址: //解释: char *p; p="abcd";//既然能够把字符串abcd赋值给指针p那么就说明字符串abcd是地址

char p;p=‘字符’;//这时p里面只能赋予字符 char *p;p=“字符串”; //这时p里面可以放字符串 案例一、

#include #include char *fun(char *p){ p++; while(*p){//遍历传入字符串判断其字符串字符是否为\0 *(p-1)=*p;//将字符串前一个的值赋值给后一个 p++;//指针向后移动 } p-=2;//p=p-2 指针向上移动两个位置 return p;//返回传入的字符串 } void main(){ char str[100]={"abcde"},*save; save=fun(str); puts(save);//字符串在打印输出的时候直接赋予字符串的指针即可 }

在这里插入图片描述 在这里插入图片描述 变换上述程序

#include #include char *fun(char *p){ char *t = p++; while(*p){//遍历传入字符串判断其字符串字符是否为\0 *(p-1)=*p;//将字符串前一个的值赋值给后一个 p++;//指针向后移动 } p-=2;//p=p-2 *p='\0'; return t;//返回传入的字符串 } void main(){ char str[100]={"abcde"},*save; save=fun(str); puts(save); }

在这里插入图片描述 在这里插入图片描述 案例二、

#include #include //在删除一个字符串前后的*号 char *fun(char *str){ char *t=str + strlen(str)-1; while(*str && *str == '*') str++; while(*t=='*') t--; *(t+1)='\0'; return str; } void main(){ char str[100] = {"***a*bcd***"},*save; save=fun(str); puts(save); }

在这里插入图片描述

熟悉以下算法

#include #include //在删除一个字符串前后的*号 char *fun(char *str){ char *p1=str+strlen(str)-1,*p2=p1,save[100],*p3=save; while(p1>str){ if(*p1>='a' && *p1 *p2--=*p3++; } return str; } void main(){ char str[100]={"a1b2c3d4e5"},*save; save=fun(str); puts(save); }

在这里插入图片描述 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3