char stf=【"abc"】;
char str=【'a','b','c'】;
printf("%d\n",strlen (stf));
printf(“%d\n”,strlen(str));
第二个输出为什么是随机的?这两个有什么区别
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2022-03-29 11:38关注
【---大括号吧?你这是怎么输入进来的?
char * stf = "abc";
char * str = {'a','b','c'};
这两个写法是不一样的,第一种写法实际stf有四个字符,包括字符串结束符'\0',而第二个没有。
所以第一个用strlen肯定结果是3,因为strlen是从数组开始向后找到第一个字符串结束符'\0'为止。这也就是第二种写法长度随机的原因。因为str本身没有'\0'字符,所以strlen函数会一直向后面的内存中找'\0'字符,但这个字符在哪就不是你这个程序能控制的,因此会随机。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥50 怎么判断同步时序逻辑电路和异步时序逻辑电路
- ¥15 差动电流二次谐波的含量Matlab计算
- ¥15 Can/caned 总线错误问题,错误显示控制器要发1,结果总线检测到0
- ¥15 C#如何调用串口数据
- ¥15 MATLAB与单片机串口通信
- ¥15 L76k模块的GPS的使用
- ¥15 请帮我看一看数电项目如何设计
- ¥23 (标签-bug|关键词-密码错误加密)
- ¥66 比特币地址如何生成taproot地址
- ¥20 数学建模数学建模需要