sizeof
在C语言中,sizeof是一个运算符,用于计算数据类型或变量所占用的字节数。其计算空间大小的逻辑如下:
1. 对于基本数据类型,如int、char、float等,sizeof运算符直接返回该类型所占用的字节数。
2. 对于数组类型,sizeof运算符返回整个数组所占用的字节数,即数组元素个数乘以每个元素所占用的字节数。
3. 对于指针类型,sizeof运算符返回指针变量所占用的字节数,通常为4或8个字节,具体取决于编译器和操作系统的位数。
4. 对于结构体类型,sizeof运算符返回整个结构体所占用的字节数,即结构体中所有成员变量所占用的字节数之和,但是由于内存对齐的原因,结构体的大小可能会比成员变量所占用的字节数之和要大。
需要注意的是,sizeof运算符在编译时就会被计算出来,因此其结果是一个常量表达式,可以在程序中用作数组大小、结构体大小等参数。
strlen
strlen函数是用来计算字符串长度的,其逻辑是从字符串的第一个字符开始遍历,直到遇到字符串结束符'\0'为止,期间每遇到一个字符,就将计数器加1,最终返回计数器的值作为字符串长度。
在C语言中,字符串是以字符数组的形式存储的,每个字符占用一个字节的空间,因此strlen函数计算的空间大小就是字符串中字符的个数,也就是字符串长度,不包括字符串结束符'\0'所占用的空间。
注意:
strlen只能计算字符串长度
在C语言中,变量名只是一个标识符,用于标识变量在内存中的位置。当你更改变量名时,不会重新分配内存,只是改变了变量的标识符。因此,更改变量名不会影响变量的值或内存分配。