首页 > 试题广场 >

以下为Windows NT下的32位C++程序,请计算siz

[问答题]
以下为Windows NT下的32位C++程序,请计算sizeof的值
void Func ( char str[100] ) 
{ 
 sizeof( str ) = ? 
} 
void *p = malloc( 100 ); 
sizeof ( p ) = ? 
知识点:
  • sizeof对数组,得到整个数组所占空间大小。
  • sizeof对指针,得到指针本身所占空间大小。
  • 当数组作为函数的形参时,实际传递的指向数组首元素的指针。
答案:
Windows NT 32位平台下指针所占用内存大小为4字节。
sizeof( str ) =  4
sizeof ( p ) =4
发表于 2017-05-02 10:24:17 回复(1)
sizeof( str ) = 4  
sizeof ( p ) = 4  
【剖析】  
Func ( char str[100] )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。  
数组名的本质如下:  
(1)数组名指代一种数据结构,这种数据结构就是数组;  
例如:  
char str[10]; 
cout << sizeof(str) << endl; 
输出结果为10,str指代数据结构char[10]。  
(2)数组名可以转换为指向其指代实体的指针,而且是一个指针常量,不能作自增、自减等操作,不能被修改;  
char str[10];   
str++; //编译出错,提示str不是左值 
(3)数组名作为函数形参时,沦为普通指针。  
Windows NT 32位平台下,指针的长度(占用内存的大小)为4字节,故sizeof( str ) 、sizeof ( p ) 都为4。  
发表于 2015-10-28 18:02:26 回复(3)
数组名做函数形参时退化为普通指针,注意是普通,const属性也没了。
发表于 2017-05-10 15:58:44 回复(0)
数组作为一个函数的形参时,会沦为一个指针,可以做++和––的操作
发表于 2016-09-19 10:07:19 回复(0)
strlen遇到'\0'就停止
发表于 2019-08-04 11:56:36 回复(0)
char str[100] ,做为形参时,有sizeof(str)=4,并且后面的100没意义。str并且可以自增自减,失去了指针常量的意义。
发表于 2019-06-21 12:17:11 回复(0)
知识点: sizeof对数组,得到整个数组所占空间大小。 sizeof对指针,得到指针本身所占空间大小。 当数组作为函数的形参时,实际传递的指向数组首元素的指针。 答案: Windows NT 32位平台下指针所占用内存大小为4字节。 sizeof( str ) =  4 sizeof ( p ) =4
发表于 2019-04-06 12:01:52 回复(0)
sizeof对数组,得到整个数组所占空间大小。 sizeof对指针,得到指针本身所占空间大小。 当数组作为函数的形参时,实际传递的指向数组首元素的指针。
发表于 2020-08-31 23:15:33 回复(0)
<p>数组名做形参 退化为指针大小看系统位数</p><p>指针在一个系统中所占大小是固定的</p><p>32位四字节</p>
发表于 2020-08-06 22:12:03 回复(0)

<p>4</p><p>4</p><p><br></p>

编辑于 2020-07-13 23:06:51 回复(0)

100

4

发表于 2020-04-17 23:45:23 回复(0)
数组名代表整个数组
发表于 2020-04-05 17:37:13 回复(0)
sizeof 对数组而言 ,得到整个数组长度
数组名作为指针时,常量指针,长度为四个字节(32
数组名作为函数参数时,沦为普通指针,长度为四个字节且可以进行自加自减等操作
发表于 2020-03-25 10:25:35 回复(0)
sizeof对数组,得到整个数组所占空间大小。 sizeof对指针,得到指针本身所占空间大小。 当数组作为函数的形参时,实际传递的指向数组首元素的指针。
发表于 2020-03-05 16:02:54 回复(0)

100.4

发表于 2019-12-25 20:43:33 回复(0)

32位系统 指针大小为4 数组名作形参,退化为普通指针

发表于 2019-10-17 14:07:58 回复(0)
数组名的各种情况
发表于 2019-10-01 23:48:52 回复(0)
数组名表示一种数据结构,可以转化为指针常量
发表于 2019-09-05 09:15:43 回复(0)

有点意思

发表于 2019-08-05 11:04:01 回复(0)
数组名不可直接加加操作,只能用于取值赋值
发表于 2019-03-29 23:44:28 回复(0)