与 C 中的数组大小混淆
Confusion with array size in C
为什么 sizeof (array [0]) return 有 17 characters/bytes 时大小为 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;
}
Returns:
12345678912345678 , 12345678
要获取实际存储的字符串的长度,使用
printf("%lu", strlen(array[0]));
这给出 17
。
确保包含 <string.h>
header.
sizeof(array [0])
returns 指针 的大小取决于您的系统。使用 strlen()
函数获得预期的输出。
int a = strlen(array [0]);
为什么 sizeof (array [0]) return 有 17 characters/bytes 时大小为 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;
}
Returns:
12345678912345678 , 12345678
要获取实际存储的字符串的长度,使用
printf("%lu", strlen(array[0]));
这给出 17
。
确保包含 <string.h>
header.
sizeof(array [0])
returns 指针 的大小取决于您的系统。使用 strlen()
函数获得预期的输出。
int a = strlen(array [0]);