话不多说,直接上代码
为什么一个strlen函数,我会有两个函数,而且两个函数输入变量类型不一样呢?
在C语言中,没有字符串这个变量。如果想表示字符串,有两种表示方法:1,字符数组,数组名表示数组首地址。注意!时是表示数组首地址为了方便理解,我加上如下几行代码:
我把输入字符串改成两个完全相同的内容,分别使用字符数组和字符指针表示字符串。字符数组名为数组首地址,字符指针表示字符串首地址,二者地址是完全不相同的。。这是基础。
学习变量和常量的时候讲过,变量可以赋值,常量不可以。字符串数组,可以理解为将字符串内容赋值到一个元素为字符的数组中,这个数组本质是一个变量。所以这个数组的指针,可以直接使用char *;而指向字符串首地址的指针,解引用后实际是一个常量,是不可以进行修改的,所以使用char const *修饰。这也就是导致为什么相同功能,如果输入值不一样,接口变量设置也需要变化。
这个目前在VS2022中需要用const,但是ubuntu中不需要。个人建议,针对这种明确的常量,习惯性的加上const