今天看见同事的代码里面有:sizeof("some_name"),马上就开始质疑代码的正确性。
在记忆里,双引号内的字符串相当于一个常量指针,而对一个常量指针取sizeof()的话,一定是4。
于是叫来同事和他理论,他坚持说sizeof("some_name")=10。
不信,于是写代码试试…………果然是10!!!
恩,恩,看来,此处的sizeof("some_name")等同于
char str[] = "some_name";
printf("%d\n", sizeof(str));
相当于是对字符串数据求大小,而不是字符串指针!!!
丢人,自以为基础不错,看来还得继续复习下基础了。
在记忆里,双引号内的字符串相当于一个常量指针,而对一个常量指针取sizeof()的话,一定是4。
于是叫来同事和他理论,他坚持说sizeof("some_name")=10。
不信,于是写代码试试…………果然是10!!!
恩,恩,看来,此处的sizeof("some_name")等同于
char str[] = "some_name";
printf("%d\n", sizeof(str));
相当于是对字符串数据求大小,而不是字符串指针!!!
丢人,自以为基础不错,看来还得继续复习下基础了。