关于'\0'的一些小问题
char arr[] = { 'a', 'b', 'c'}; int length = sizeof(arr) / sizeof(arr[0]); printf("%d\n", length);
printf("%lld\n", strlen(arr));
第二行的计算是可行的,这无关乎有没有'\n',这是纯粹的大小计算。
第三行不行,因为这样定义的话arr只有三个元素,没有位置放'\n',也就是会越界。
第四行不行,因为strlen()需要通过'\n'来确定结尾,并且会算上终止符这一位,同样会越界。

浙公网安备 33010602011771号