1. 一维数组的输入输出
给char a[100]输入时
① gets(a);
②scanf("%s",a); 注意:空格也会结束
③while((ch = getchar()) != '\n')
{
a[i] = ch;
i++;
}
a[i] = '\0'; //该方法能控制字符防溢出
传指针数组名,用二维指针接
2.main函数的形参
int argc 命令行参数的个数/程序所接受参数的个数
char * argv[] 命令行参数的列表/有效参数的数组
int main(int argc ,char *argv[ ]);
int main(int argc, char **argv); 一样
看到**argv,要注意:
①可能传指针数组
②可能串指针的地址
argv为命令行参数 ./a.out hello
argc为串入参数的个数,把命令./a.out也当参数传递,因此最小是1
argv[0] = "a.out"
3.函数名是指针常量,这个指针常量保存了函数的入口地址
p_func = &add;
p_func = add; 两者没有区别,原因不明
函数指针的作用:函数名可当实参传递,用函数指针来接函数名
4.还有就是函数名是指针常量可作实参传递
函数的指针作形参:回调函数,或钩子函数
回调函数:函数指针做形参,指向的那个函数
可以增加代码的扩展性和维护性
拓展性:再添加新功能时,修改代码越少,扩展性越好
写代码时,要注意的是不仅仅是简单的算法,
而且要注意扩展性,维护性复用性,迭代开发。