char str[]="hello"; sizeof(str)=? char str[]="hello"; char *p=st...

char str[]=hello int a =sizeof(str); a\u7684\u503c\u662f()

\u6807\u51c6\u5b57\u7b26\u4e32\u9690\u542b\u7740\u672b\u5c3e\u7684\u7ed3\u675f\u7b26\0\uff0c\u4ee5\u4e0a\u9898\u76ee\u7684\u7b54\u6848\u662fA 6

sizeof\uff08str\uff09=6 str\u662f\u6570\u7ec4\uff0csizeof\u5f97\u5230\u7684\u662f\u5b83\u7684\u5185\u5b58\u7a7a\u95f4\u5927\u5c0f\uff0chello\u4e32\u6709\u4e00\u4e2a\u7ed3\u675f\u7b26\uff0c\u51716\u4f4d

sizeof\uff08p\uff09=4 p\u662f\u6307\u9488\uff0c\u6240\u6709\u7684\u6307\u9488\u90fd\u5360\u56db\u5b57\u8282

6!!

因为除了hello这5个字节外,编译器还给加了'\0', 用来标志字符串的结束。

6
char类型每个字符占一个字节,加上系统默认字符串结束标记\0 共为6个字节。
你可以看一下谭浩强的c语言教材 说的很清楚。

扩展阅读:char str 10 china ... char s 6 s 3 ... char str 1234 ... char str abc ... char str good ... char str 括号里的数字 ... char strcpy ... char str 81 是什么意思 ... char str hello ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网