c - 为什么传递给函数时 C 字符串长度会改变?

标签 c sizeof

<分区>

Possible Duplicate:
C -> sizeof string is always 8

如果我执行 sizeof("HELLO"); 我得到 6,这是预期的,但是如果我有:

void printLength(char *s) {
    sizeof(s);
}

当将“Hello”传递给此函数时,sizeof 返回 8。

这是为什么?

最佳答案

您得到的是 char * 的大小。要获得它的实际长度,请使用 strlen

关于c - 为什么传递给函数时 C 字符串长度会改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11749572/

相关文章:

java - 在 c++/c 中使用 JAR 文件

c++ - 链接描述文件条件包含

java - 以编程方式计算值类型的大小

c - Windows XP 上的 GCC 编译器错误

python - 确定(Windows)上是否存在 PID 的快速方法?

c - 正则表达式获取所有不带属性的html标签

c++ - 循环在此代码中仅迭代一次,而在另一代码中它正确迭代

c - 了解我的结构的大小

c - 如何在不使用sizeof的情况下找到变量的大小