字符数组与字符串

#include <stdio.h>
#include <string.h>
int main(void)
{
    char vc1[10]="vc++6.0",vc2[10]={
        'v','c','+','+','6','.','0'
    };
    
    char tc1[]="tc2.0", tc2[]={ //采用了字符串整体赋值,会在后面自动加‘|0’ 
        't','c','2','.','0'
    };
    
    printf("%d %d\n",sizeof(vc1),strlen(vc1));
    printf("%d %d\n",sizeof(vc2),strlen(vc2));
    printf("%d %d\n",sizeof(tc1),strlen(tc1));
    printf("%d %d\n",sizeof(tc2),strlen(tc2));
    
    return 0;
}
/*
10 7
10 7
6 5
5 5
请按任意键继续. . .

*/
 

有书作解释说,tc2的输出是一个不确定的数,因为tc2 存放的的是几个字符 ,而不是一个字符串数组,所以当检查到TC2[4]的时候并不是‘\0’,所以会继续向后检索

知道遇到第一个'\0' 才得以结束。

原文地址:https://www.cnblogs.com/yoyov5123/p/2934219.html