-
对于if判断句,一些情况下可以进行如下简写:
if (falg) { printf("ok\n"); } //可简写成以下格式: flag && printf("ok\n");
-
结构体的比较与复制:
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
-
函数数组与函数指针的使用
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); //即可实现调用
-
函数和数组的关系
函数就相当于一个映射,而数组
a[i] = t
也相当于一个映射因此,函数是压缩的数组,数组是展开的函数。
函数比数组更省空间,数组相当于记录式函数
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢