房天下 > 房天下问答 > 业主生活 > 其他
  • 请大家帮帮忙啊,急啊

    执行语句printf( "%d\n" , strlen("abc\x41\n") );的输出结果是【2】。【2】 A)5 B)7 C)abcA D)abc\x41 此答案为什么不是B呢?不是有七个吗??a,b,c,\x,41,\n不是刚好有七个吗??为什么是A呢

    提问者:canny__033

    发布于2011-02-12

共1个回答
  • fly0818xu 丨Lv 2
    呵呵,楼主又碰上了,一楼回答有误。strlen测试字符串长度,他是指字符串末尾标志'\0'前的所有字符,("abc\x41\n")中,abc 3个 \x41是一个,\x表示16进制数,故\x41表示ASCII码对应字符(查表得知为‘A’);\n是一个,总共5个字符。答案A。此题考察转义字符的知识,若改为:printf( "%d\n" , strlen("abc\\x41\n") );则结果为8。
    +1 2011-02-12 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。