1. 前言
C语言函数里最常用就是指针传参和返回地址,特别是字符串处理中,经常需要封装各种功能函数完成数据处理,并且C语言标准库里也提供了string.h
头文件,里面包含了很多字符串处理函数;这些函数的参数和返回值几乎都是指针类型。这篇文章就介绍如何使用指针作为函数参数、并且使用指针作为函数返回值。
下面通过几个示例代码来演示用法。
2. 通过指针间接修改主函数里局部变量空间的值
代码语言:javascript复制#include <stdio.h>
#include <string.h>
void func(int *p);
int main()
{
int a=100;
func(&a);
printf("a=%dn",a); //200
return 0;
}
void func(int *p)
{
printf("p=%dn",*p);
*p=200;
}
3. 在子函数里通过指针类型间接交换main函数里局部变量空间的值
代码语言:javascript复制#include <stdio.h>
#include <string.h>
void func(int *a,int *b);
int main()
{
int a=100,b=200;
func(&a,&b); //func(100,200)
printf("a=%d,b=%dn",a,b);
return 0;
}
void func(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}
//return语句只能返回一个值
//如果函数想返回多个值,可以使用指针(形参)实现。
4. 函数返回指针类型
代码语言:javascript复制#include <stdio.h>
#include <string.h>
char *func(char *p);
int main()
{
char str[]="1234567890";
char *p;
p=func(str);
printf("%sn",p); //
return 0;
}
char *func(char *p)
{
p =3; //p向后偏移3个字节
return p;
}
5. 编写一个计算字符串长度的函数
函数功能: 传入字符串,返回字符串的长度。
与strlen函数功能一样即可。
代码语言:javascript复制#include <stdio.h>
#include <string.h>
int my_strlen(char *p); //函数声明
int main()
{
char buff[100];
int len;
printf("请输入字符串:");
scanf("%s",buff);
len=my_strlen(buff);
printf("len=%dn",len);
return 0;
}
//每个函数的功能要单一
//计算字符串长度。 字符串特点结尾是有'