1.9字符数组
【1.9字符数组】看懂这个得先看懂前面的参数——传值调用,
这里的例题我感觉就是三个小程序放在一起相互传值。
对于参数传值理解的还不够透彻,先把例题大概弄懂到后面再回来改。
被调用函数不能直接修改主调函数中变量的值,而只能修改其私有的临时副本的值。
这句话我的理解就是给你一个复印件随便玩,不要动我的原稿。
getline函数有重名的是C++的最好换个函数名。
max = 0;
while ((len = getline(line, MAXLINE)) > 0)
if (len > max) {
max = len;
copy(longest, line);
getline函数里返回的值就是getline的值,可以把getline看成饭后的那个数,括号里的是他的两个参数,第一个被声明成字符数组,第二个是一个常量。限制最长的长度的。
然后把getline返回的值赋给len,下面就是找出最长的输入行了。copy是执行一个动作就是把字符数组line复制给longest。每找到一个比max长的都要进行复制,所以最后留下的就是最长的。
int getline(char s[],int lim)
这个s[]和lim直接看做是上面getline的括号里line和MAXLINE得副本就可以了,值是一样的。
i < lim - 1;
这是因为数组下标是从0开始的,lim定义的是1000是从1开始数的。所以下标0就是1、1就是2,所以到1000的时候是下标是999,
所以要定义的长度-1,而999的留给最后一个字符‘\0’的,。
这里我有个不懂得地方就是最后一个留给‘\0’那换行符在哪?读取到第998个元素还还是没有换行符最后一个就要留给‘\0’了就没有换行符了。
copy里的to[]和form[]可以看做是就是把字符数组line复制给字符数组longest。
后面的那几个练习看完我就出头了。。。
推荐阅读
- 一起来学习C语言的字符串转换函数
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- 数组常用方法一
- Java|Java基础——数组
- 字符串拼接成段落,换行符(\n)如何只执行n-1次
- 爬虫数据处理HTML转义字符
- C语言的版本比较
- JS常见数组操作补充
- JS|JS 数组求和与数组求平均值
- 超帅的js数组去重