以前一直以为在C中“hello“这样的字符串,在程序里的属性就是一个字符指针,比如:
char *str = “hello”;
可是,今天我才知道我错了,它实际上是字符数组,而不是指针,只是在有些地方,数组的表现和指针等价而已,比如作函数参数的时候。
事情是这样的,今天用串口发送数据的时候总是多一个字节。后来发现问题出在一句别人写的,而我没有仔细看的代码:
write(serial_port, “hello”, sizeof(“hello”));
strlen(“hello”)的结果是5,而sizeof(“hello”)是6。很明显”hello”是一个数组~虽然,我从来没有想过在这个地方用sizeof~
今天才知道,汗一个,记之~
to cocobear:
貌似你很荣幸啊,呵呵
老大提到俺了:-)
to crazyfranc:
是啊,还得加油啊~
to luguo:
是没有关系,是我突然想起来了么~一定要有关系么???
to kongove:
没看过,以前也没仔细想过这个问题~
我买的那本《c语言解析教程》里这个讲的很清楚~~
dp有电脑和你这文章有毛线关系?!根本就扯不上嘛~~!
呵呵,老大基本功还不够扎实啊:)