粗滤的估计一下,C语言的博客估计会有四篇左右吧,适合有一定基础的人看,也希望有想法的人和自己一起讨论,小弟在这里不胜感激。那么废话不多说,我们继续开始C语言之旅~

  一,二级指针

     目前来讲,自己关于二级指针用的场景还真不多,即便是能用的情况也可以根据别的形式来完全替代,也可能是我的经验有限,但是二级指针的一个用途却不得不引起我们的注意,有一句话说的好,学C语言的人如果不懂指针那就和没学过C语言没有什么差别。

     而二级指针的最大作用就是可以随意改变指针的指向,这在以后的开发中会提供很大的方便,就是对于初学者来说二级指针的形状有一点怪,刚开始用的时候不太适应,但是我相信时间长了这些问题都可以被解决的。

    例:int **p;


  二,int *p(int) 和 int(*p)(int)

    int *p(int);

    这是一个函数,它的参数是一个×××,返回值是一个指向×××的指针。


    int (*p)(int);

    也可以看成 int A(int);

    这是一个指针,它指向参数是int,返回值是int的函数。函数指针。


  三,int *p[10] 和 int (*p)[10]

    int *p[10];

    也可以看成 int *A;

    这是一个数组,它有10个元素,每个元素是指向整型变量的指针。


    int (*p)[10];

    也可以看成 int A[10];

    这是一个指针,它指向10个×××元素的数组。


  四,将字符串转化为数字

#include<stdio.h>

#include<stdlib.h>

int main(void)

{

    int a1 = atoi("123");

    int a2 = atoi("-123");

    int a3 = atoi("123u123");

    int a4 = atoi("-123-123");


    printf("%d %d %d %d\n", a1, a2, a4, a4);

    return 0;

}


  五,找到子串在字符串中的位置

#include<stdio.h>

#include<string.h>

//char *

//strstr(const char *s1, const char *s2);


int main(void)

{

    char *p = "Welcome to to prison";

    char *q = "to";


    char *ret = strstr(p, q);

    if(ret != NILL){

        printf("%s\n", ret);

    }

    return 0;

}

如果没找到,返回值为空


  六,strtok:字符串分割函数

#include<stdio.h>

#include<string.h>


int main(void)

{

    char buf[] = "Welcome to prison"

    char *p = strtok(buf, "");


    printf("%s\n", p);

    return 0;

}


    strtok的用法

#include<stdio.h>

#include<string.h>


int main(void)

{

    char buf[] = "Hello, Welcome to prison";

    char &p = buf;

    char *q[5] = {};


    int i = 0;


    while(1){

        p = strtok(p, ",!");

        if(!p){

            break;

        }

        q[i++] = p;

        p = NULL;

    }

    

    for(i = 0; i < 5; i++){

        if(q[i]){

            printf("%s\n", q[i]);

        }

    }

    return 0;

}


代码有点多,不过纯手写,还真是费劲,真怀念Xcode的强大啊,快了,还有不到一个月的时间苹果电脑就到了,好好领会上面的代码会对我们的程序人生有着强大的帮助,想写这些,欲知后事如何,请听下回分解。