在项目中碰到了有人直接使用sizeof(array)
当做字符串数组的长度,这样使用是不对的正确的使用应该是sizeof(array)/sizeof(array[0])
来求字符串数组的长度。
同时,其他类型的数组长度也可以通过这种方式来求。
- 字符串数组
- 基本类型数组(char, short, int, float, double 等)
- 结构体类型数组
随手写了一个测试程序来测试了一下。
1 #include <stdio.h>
2
3 int main(void)
4 {
5 static const char* array_str[] = {
6 "jinhongliang",
7 "jinhongliang1",
8 "jinhongliang2"
9 };
10
11 printf("sizeof(array_str): %d\n", sizeof(array_str));
12 printf("array_str len: %d\n", sizeof(array_str) / sizeof(array_str[0]));
13 return 0;
14 }