为什么sizeof(array [0])在其中包含17个字符/字节时返回大小为8?
#include <stdlib.h>
#include <stdio.h>
int main () {
char* array [2] = {"12345678912345678","12345678"};
int a = sizeof (array [0]);
fprintf (stdout, "%s , %d \n", array [0], a);
return 0;
}
返回:
12345678912345678 , 12345678
答案 0 :(得分:0)
要获取存储的实际字符串的长度,请使用
printf("%lu", strlen(array[0]));
这会给17
。
确保包含<string.h>
标题。
答案 1 :(得分:0)
sizeof(array [0])
返回指针的大小,这取决于您的系统。使用strlen()
函数获得预期的输出。
int a = strlen(array [0]);