C语言碎碎念

  1. 对于if判断句,一些情况下可以进行如下简写:

    if (falg) {
    	printf("ok\n");
    }
    //可简写成以下格式:
    flag && printf("ok\n");
    
  2. 结构体的比较与复制:

    struct node {
        int a, b;
    }
    node temp1[4];
    node temp2[105][15];
    
    //结构体数组比较
    memcmp(temp1, temp2[0], sizeof(temp1));	//代表temp1从temp[0]开始,temp2从temp2[0][0]开始,比较它们的前sizeof(temp1)个字节
    
    //再比如:
    memcmp(temp1 + 1, temp2[2] + 2, sizeof(node)); //代表temp1[1]和temp2[2][2]进行比较
    
    //结构体复制:
    memcpy(temp1, temp2[0], sizeof(temp1));	//代表将temp2的前sizeof(temp1)个字节复制给temp1
    
  3. 函数数组与函数指针的使用

    int f (int n) {
        return n * (n + 1) / 2;
    }
    
    int g (int n) {
        return n * n;
    }
    
    //函数数组
    int (*Func[2])(int) = {
        f, g
    };
    
    //函数指针作参
    int k (int (*t)(int), val) {
        return t(val);
    }
    
    //函数数组指针作参
    void k (int (*p[2])(int), int val) {
        for (int i = 0; i < 2; i ++) {
            printf("%d\n", p[i](val));
        }
    }
    k (Func, 3);	//即可实现调用
    
  4. 函数和数组的关系

    函数就相当于一个映射,而数组a[i] = t也相当于一个映射

    因此,函数是压缩的数组,数组是展开的函数。

    函数比数组更省空间,数组相当于记录式函数

转载请注明出处!!!

如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢

猜你喜欢

转载自blog.csdn.net/Ivan_zcy/article/details/86310484
今日推荐