本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路。
七、函数
C语言在开发项目过程中,如果内容相对简单,则全部内容都写在main函数中,但内容相对复杂时,全部写在main函数中会显得程序体庞大,需要将内容分配到不同子函数中,通过调用子函数实现相应功能。
子函数的书写方式为:
返回值类型 函数名(参数列表)
{
函数功能代码;
}
通用函数功能,可以在公共的程序中定义。举例说明:
//test.h
#include <stdio.h>
#include <string.h>
int min(int a,int b);
//test.c
#include "test.h"
int min(int a,int b)
{
if (a<b)
return a;
else
return b;
}
调用公共函数:
//main.c
#include "test.h"
int main()
{
int x,y;
x=10;
y=30;
imin=min(x,y);
printf("%d",imin);
}
此处注意,自定义的通用函数调用是用"",调用C自带库是用<>
查看所用函数依赖的库,可以使用man 代码进行查询
八、指针
指针是以符号形式使用地址的方法
%p代表读取地址
定义指针时,*p指的是地址;定义完之后调用,*p指的是值
举例:
#include <stdio.h>
int main()
{
int a[2]={100,200};
int *p1,*p2;
p1=a;//把地址赋给指针
p2=&a[2];
}
针对二维数组:
p代表二维数组首元素的地址;p+2代表二维数组的第3个元素的地址;(p+2)代表二维数组的第3个元素的首元素;(p+2)+1代表二维数组的第3个元素的第2个元素的地址,即p[2][1];((p+2)+1)代表p[2][1]的值
九、字符和字符串
字符串绝大多数是通过指针完成的。
gets()与puts()的典型用法:
#include <stdio.h>
#define len 10
int main()
{
char word[len];
gets(word);
puts(word);
return 0;
}
输入行如果太长,使用gets会擦写现有数据,存在安全隐患。
当输入内容超过数组可容纳的字符数时,可以使用fgets()函数。