关于'\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'来确定结尾,并且会算上终止符这一位,同样会越界。

posted @ 2025-12-29 20:51  Nowasiki  阅读(0)  评论(0)    收藏  举报