怎么该数组占据几个字节
char str[] = "This is a test."
char str[] = "This is a test.";
等价于
char str[] = { 'T', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', '.', '\0' };
str
数组的大小是16个字节,等于字符串的长度加1(因为字符串结尾有个'\0'
)
unsigned int length=strlen(str)*sizeof(char)
你要知道数组存储字符串,默认是在字符串结尾有个'\0'的,用strlen求得是字符串得长度,不包括\0,sizeof可以求占用得字节。
这里是刚好char类型占一个字节,如果int类型定义,你试试sizeof,以及用sizeof求数组个数(sizeof(XX)/sizeof(int))。