【发布时间】:2016-04-02 23:44:28
【问题描述】:
我开始学习 C 并遇到了一个我找不到答案的问题。
当我用
初始化一个随机字符串时char *str1 = "Big";
printf("size of str1: %ld\n", sizeof(str1));
当我执行sizeof(str1) 时,它给了我 8(字节)的大小,这对我来说没有意义。
当我用
初始化一个随机字符串时char str2[] = "Big";
printf("size of str2: %ld\n", sizeof(str2));
当我执行 sizeof(str2) 时,它给了我 4(字节)的大小,这对我来说很有意义,因为三个字符 'B'、'i'、'g' 和 '\0'。
为什么第一个给我 8 码?
【问题讨论】:
-
J - 虽然我没有投反对票,但我可以推测原因是因为这是一个相当基本的问题,无论搜索 S.O.或一般的网络。别担心,这不是世界末日。但是,展望未来,如果您想避免进一步的反对票,请确保在提问之前做出合理的努力。所以。在这里可以提供帮助,但不应使用它来避免基本的阅读或学习。祝你好运,欢迎来到 S.O.
-
David - 谢谢,下次我会更加努力地自己找东西。我对这里很陌生,我什至不知道我被否决了……哈哈。对不起大家。
-
别担心被否决,我们都有自己的份额。这是一个很棒的网站,我们都尽自己的一份力量使其尽可能有用。投票/声誉系统只是为网站增加了一点……完整性。再次欢迎您加入。
-
谢谢先生!这真的是一个很棒的网站!在这里可以学到很多东西。
-
数组和指针是不同的类型!
标签: c arrays string pointers sizeof