从0到1用代码入门C语言(三)

159 阅读2分钟

本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路。

七、函数 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()函数。