**
最后一题不太懂有哪个小可爱帮忙康康~
——20200317 最后一道题解决啦谢谢评论区的小可爱
补充一个strlen函数(第八题)
**
数组的赋值自动延顺——
ORANGE是5,所以延顺MANGO就是6;
BANANA是4,PEACH就是5;
解析——
解析——
解析——
前面定义了a是常量等于10,后面又把a的值修改为5,所以会出现编译错误滴
解析——八进制啦
复习一波【来自博客链接】——C语言中8进制和16进制怎么表示
C语言本身支持的三种输入是:
- 十进制。比如20,457;
- 十六进制,以0x开头。比如0x7a;
- 八进制,以0开头。比如05,0237
所以C语言没有二进制输入,最多可用函数去实现。
哎呀就是赋值啦
MAX=2
SPARROW=3
PARROT=5
解析——
这里呢我们遇到了几个新的朋友——
#include <string.h>
strlen()
#include <string.h>
是一个全新的标准库【详细信息点这里】
它是为了给strlen()函数提供原型的
那strlen()是干什么的呢(以下来自百科)——
strlen所作的是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。
区别sizeof
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个’\0’,如果你只定义没有给它赋初值,这个结果是不定的,它会从aa首地址一直找下去,直到遇到’\0’停止。
在这里 str相当于是一个数组a[],a[0]=[‘x’,’\0’];【已经初始化赋值了】
但是a[1]=[‘x’];【因为是直接赋值到数组位上面 所以不带/0的】
啊我如果没说清楚可以参考这篇文章终止符号/0