C基础二维数组传递:
形参中数组是指针变量,传递数组必须知道元素个数
方式一:直接传递二维数组
void fun(int n, char subargs[][5]) //如果要传递的实参是二维数组,形参必须确定行宽列数
{
}
void main()
{
char args[][5] = {"abc", "def", "ghi"};
fun(3, args);
}
方式二:直接传递二维数组
void fun(int n, char (*args)[5]) //实参是二维数组,形参的行宽列数必须知道
{
}
void main()
{
char args[][5] = {"abc", "cde", "ghi"};
fun(3, args);
}
方式三:指针作为形参
void fun(int n, char **args) //直接传递二维数组可能会溢出,步进会跳过整个指针
{
int i;
for (i = 0; i < n; i++) {
printf("args[%d] = %s\n", i, args[i]);
}
}
void main()
{
char *a[3];
char args[][5] = {"abc", "def", "ghi"};
a[0] = args[0];
a[1] = args[1];
a[2] = args[2];
fun(3, a);
//fun(3, (char**)args); //传递的是首行地址&args[0]或者*args
}
常用字符处理函数:
gets,fgets,puts,fputs,memcpy,memset,bzero,strlen,strcpy,strncpy,strcmp,sprintf,sscanf,strchr,strstr,strtok
今天还看了指针、数组、内存。没太多好讲的,就这样了。
晚上朋友组局和技术前辈吃了个饭,聊到了一些经历,从最开始的单片机到做银行支付,再到个人创业,再做激光打印,再回原公司带项目,都简单讲了一些。每个方向发展都有起起落落,感受最深的是这行真的一直在与时俱进,因市场而动。
一直认为it业长盛不衰的原因主要是需求量和门槛。我的观念中需求量是相对固定的,门槛是比较稳固的,大部分传统行业如此。比如一个商品一天卖出多少是有定数的,主要由周边固定需求决定。
而it业的市场其实和装修和奢侈品类似,同样的产品的需求随着市场满足其实一直在减少的,但这类行业都有个特点,更新换代,一直在开发需求。不同的地方是it的延展性更高,且由资本引领紧紧追随市场。前者决定相同技术能与不同方向行业结合,生成能力强;后者决定原有市场的饱和度无关紧要,这个时代有资本的地方几乎都能带入it。总结就是,世界其实一直在变,做技术的人技术一定要硬。