字符串数组是由字符串组成的数组,里面其实都是指针,字符数组里面当然都是字符了。不过看你描述的问题似乎不是要问这个,你定义的3个name都是数组,其实只要是连续存放在内存中的字符都是字符串,所以那3个name也是字符串,strlen(name)也是正确的,不过返回的值很可能大于数组长度,因为strlen在计算字符串长度是以'\0'结束的。只要是char*类型的指针都可以用strlen来计算长度。常见的字符串定义是指针的形式:
char *c = "asd"; //c指向的是字符串常量,里面包含4个字符'a''b''c''\0'
char s[10]={'a','s','d'}; //这是个数组,但也是字符串,里面包含'a''b''c'和7个'\0',因此strlen(s)=3
数组其实很好理解,有[]就是数组,之所以字符数组也是字符串是个巧合,它们里面都放的是字符,如果是int数组就不会出现这样的情况了 |