void Func ( char str[100] ) { sizeof( str ) = ? } void *p = malloc( 100 ); sizeof ( p ) = ?
sizeof( str ) = 4
sizeof ( p ) = 4
Func ( char str[100] )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
但是数组名在不作形参时,仍然代表整个数组,这时的sizeof应返回数组长度。
sizeof返回的单位是字节。对于结构体,sizeof返回可能会有字节填充。结构体的总大小为结构体最宽基本类型成员大小的整数倍。