sizeof函数功能:计算数据空间的字节数 在32或者64位编译器下所占字节是不同的,具体如下:
1、32位编译器:
32位系统下指针占用4字节;
char
:1个字节
char
*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short
int
: 2个字节
int
:
4个字节
unsigned
int
: 4个字节
float
:
4个字节
double
:
8个字节
long
:
4个字节
long
long
:
8个字节
unsigned
long
:
4个字节
2、64位编译器:
64位系统下指针占用8字节
char
:1个字节
char
*
(即指针变量): 8个字节
short
int
: 2个字节
int
:
4个字节
unsigned
int
: 4个字节
float
:
4个字节
double
:
8个字节
long
:
8个字节
long
long
:
8个字节
unsigned
long
:
8个字节
关于strlen()函数的使用说明 strlen()函数用来计算字符串的长度,其原型为:unsigned int strlen(char*s)
1、strlen()用来计算指定的字符串s的实际长度,不包括结束字符“\0”;
例1: char str[100]=“http://see.xidian.edu.cn./cpp/u/biaozhunku/”; 定义了一个大小为100的字符数组,但是仅有开始的43个字符被初始化了,剩下的都是0, sizeof(str)等于100 strlen(str)等于43. 但是需注意:如果字符的个数等于字符数组的大小,那么strlen()的返回值就无法确定了例2: char str[6]="abcxyz"; strlen(str)的返回值是不确定的。 strlen()函数计算的是字符串的实际长度,遇到第一个“\0”结束,如果只对字符数组定义但没有给他赋初值,这个结果是不定的,它会 从首地址一直找下去,直到遇到‘\0’停止。而sizeof()返回的是变量申明后所占的内存数,不是实际长度,此外sizeof不是函数,仅仅是 一个操作符,strlen()是函数。例