“Hello”是什么?

以前一直以为在C中“hello“这样的字符串,在程序里的属性就是一个字符指针,比如:

char *str = “hello”;

可是,今天我才知道我错了,它实际上是字符数组,而不是指针,只是在有些地方,数组的表现和指针等价而已,比如作函数参数的时候。

事情是这样的,今天用串口发送数据的时候总是多一个字节。后来发现问题出在一句别人写的,而我没有仔细看的代码:

write(serial_port, “hello”, sizeof(“hello”));

strlen(“hello”)的结果是5,而sizeof(“hello”)是6。很明显”hello”是一个数组~虽然,我从来没有想过在这个地方用sizeof~

今天才知道,汗一个,记之~

ps:今天,DP同学貌似是终于有的电脑了,来我博客把陈年老文都翻出来回了一下,不错,不错,恭喜DP有电脑了。

《“Hello”是什么?》有6条评论

  1. to crazyfranc:
    是啊,还得加油啊~
    to luguo:
    是没有关系,是我突然想起来了么~一定要有关系么???
    to kongove:
    没看过,以前也没仔细想过这个问题~

    回复

回复 luguo 取消回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据