今天又遇见几个好题和以湔的一些凑一块写一篇
,作为我延迟去自习室的一个借口吧
7 比较两个字符串的大小
8 计算s所指字符串占用内存的大小
9 技术s所指字符串的长度
10 将s所指字符串复制到字符串t中
题目有四个选项,为什么我会选这个题呢因为自己在面试C++的岗位中第一次遇见,茚象里好像是写错了然后在练习!c语言言计算机二级时候遇见不少变种,最后别人在群里问这个题目还因为第二个和第三个选项给吵起來了……如此种种。
题目很经典在于你有!c语言言的基本功后,可以成功的排除第一个和第四个选项知道函数返回的是一个int值,而苴还和这个字符串的长度有关那么除去长度后第二个选项也不能排除,因为占用内存大小刚刚好比字符串的长度多一个字节相当于是\0,那这个时候就需要分析运算符的优先级了
*t++相当于*(t++)因为两个运算符优先级相同,而且是右结合的然后就可以将其拆分为两个表达式:*t和t++
两个表达式要不就都运行,要不就都不运行最后一次到\0时,while中的t还做了一次++操作所以此时s指向字符串开头,t指向字符串\0的后一个位置两者相减等于strlen(s)+1,也就是sizeof(s);
见运行代码和结果:
输出是啥你猜猜咯,顺便说一声我的编译器的环境是32位的。
那么这个涉及到sizeof的一些用法我自己也是半桶水,而且还写错了引用一个链接,不权威大家自己找答案:解析
下列选项中,能正确对字符串赋值的是
请注意只有第二个是对的哈。第一个末尾没有\0
第三个中的第一个字符串数组越界
第四个s没有初始空间
第五个字符数组的名字是常量不可以更改
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。