2012-07-31 50 views

回答

3

因为声明为固定大小的字符串文字和数组会被专门处理。编译器确切知道它们有多大。

在你的功能,所有的编译器知道的是,它是一个指针的东西。你正在使用字符指针的大小(在这一点上,所有编译器都知道它的大小)。你使用的是64位系统,因此无论你输入什么函数,都会得到一个8字节的指针。

有一个库函数来为你做这个:

#include <string.h> 

int getLength(char * str) 
{ 
    return strlen(str); 
} 
6

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

4

它不会改变。数组不是指针。 sizeof("HELLO")给出了char数组{'H','E','L','L','O','\0'}的大小,而sizeof(s)给出了指针的大小。

相关问题