C++常见面试题(一)——关于字符、字符数组、assert()

        今天在牛客网上看招聘,选择“研发工程师(C/C++方向)”,列出了基础知识体系及结构,包含C/C++、网络基础、操作系统、linux、数据库、数据结构。我的天呐,包含的内容体系这么多,这可不是两三个月突击就可以搞定的!好好加油吧孩子~

      好,今天先看几道题目吧。

      1、分析下面代码有问题

void test1()
{
 char string[10];
 char* str1 = "0123456789";
 strcpy( string, str1 );
}
      分析:显然有问题。 编译器在编译字符串时,会自动在每个字符串的结尾处加上一个空字符(‘\0’),所以,str1指向的是11个元素,而字符数组里面只有10个空间,显然不能拷贝。这里补充说明一点,字符 ‘A’,就是个单独的字符 A,而字符串 “A”包含两个字符,一个是字母A,另一个是\0;

    2、分析下面代码的问题

void test2()
{
 char string[10], str1[10];
 int i;
 for(i=0; i<10; i++)
 {
 str1  = 'a';
 }
strcpy( string, str1 );
}
      分析:显然有问题。str1= 'a'; 根本编译不
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值