下表比较了两种不同的方式来初始化字符数组:for循环和memeset()。随着初始化数据量的增加,memset()很清晰的做的更快: 耗时for循环memset10000.0160.017100000.0550.0131000000.4430.02910000004.3370.291 变量的初始化 要是极度追求速度的话,“定义变量并严格初始化”并不是一条黄金法则,如果流程上并不需要对变量初始...
这个不一定的,要看你这块内存是怎么分配的。如果是全局变量的话,这块内存是程序装入内存后的.bss段,一般操作系统的程序装载器会对没有初始化的符号进行清0操作。如果是临时变量,是在分配在程序栈上的,程序一般不会对栈进行清0操作,所以可能会是你无法预知垃圾数据。为什么不清0,因为没必要,因为...
如果是0值就可以 char s[1000] = {0};如果是'0' 字符,可以 memset(s, '0', sizeof(s));或者是for循环赋值
编译器会有意把后面6个char填成0,因此我认为这是标准规定的。https://godbolt.org/g/RVmm9i 查了...
第一个字符赋值为 0 是为了防止标准 C++ 库的字符串函数计算字符串长度时出错;正确的初始化方法应该是 char string[ n ] = { 0 };其中 n 是你的字符串长度,这样子编译器会自动帮你把整个数组清空为 0,而 string[ 0 ] = 0 只会把第一个元素清零,其余元素的指随机;...
刷刷题APP(shuashuati.com)是专业的大学生刷题搜题拍题答疑工具,刷刷题提供字符数组初始化时没有赋值的元素值为空,是编码为0的字符,称为空字符。A.正确B.错误的答案解析,刷刷题为用户提供专业的考试题库练习。一分钟将考试题Word文档/Excel文档/PDF文档转化为在线题库,
字符数组可以通过判断第一个元素是否为空字符'\0',是的话为空行 arrar[0]=='\0'; 或者用长度strlen(char arrar)==0 特别注意这两个 arrar[0]==0; arrar[0]==NULL; 因为指向了空指针,空指针指向NULL,NULL在VS这个IDE上,代表0,所以上述成立
下列哪些字符数组初始化写法,作为字符串使用将会有隐患 A.charstr[10]={'H','e','l','l','o','\0'};B.charstr[5]={'H','e','l','l','o'};C.charstr[10]="Hello";D.charstr[5]="Hello";相关知识点: 试题来源: 解析 B,D ...
B、China C、China\0\0\0\0\0 D、一个地址值查看答案更多“若有字符数组定义并初始化为:char str[10]=″China″; 则cout<<str;> A、China\0”相关的问题 第1题 char str[10]="China";数组元素个数为( ). A、5 B、6 C、9 D、10 点击查看答案 第2题 设有以下定义和语句 char str[20]...
百度试题 题目对字符数组进行初始化时,如果初值个数小于数组长度,则只将这些字符赋给数组中的前面那些元素,其余元素自动定为空字符('\0')。相关知识点: 试题来源: 解析 正确知识点:知识点/判断题/C7数组/C73字符数组T null