数组名
来源:互联网 发布:前端开发用什么软件 编辑:程序博客网 时间:2024/06/11 04:56
以下为Windows NT下的32位C++程序,请计算sizeof的值
void Func ( char str[100] )
{
sizeof( str ) = ?
}
void *p = malloc( 100 );
sizeof ( p ) = ?
sizeof( str ) = 4
sizeof ( p ) = 4
Func ( char str[100] )函数中数组名作为函数形参时,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
C语言中常量不能做自加自减运算,比如4++,特别注意C语言中数组名和函数名都是常量,故不能做自加自减运算,但是在上面的情况下,数组名作为形参,在函数体内,数组名失去了本身的内涵,仅仅只是一个指针;在失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。
数组名的本质如下:
(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。
- 数组名
- 数组名
- 数组名
- 数组名
- 数组名 和 &数组名
- 数组名=&数组名
- 数组与数组名
- 函数名与数组名
- 数组名是什么 数组名揭秘
- 数组名与数组名的地址
- 数组名和数组名取地址
- 数组名VS数组名取地址
- 数组名和数组名取地址&
- 数组名和数组名取地址&
- 数组名和数组名取地址&
- 数组名和数组名取地址&
- 数组名和数组名取地址&
- 数组名与数组名的地址
- Documentation_timers_timers-howto
- 【Java TCP/IP Socket】TCP Socket(含代码)
- 第一次独立开发App
- Java设计模式—单态模式(Singleton)
- HDu1241 DFS搜索
- 数组名
- 台式机+无线路由 配置 wifi热点
- 电脑上个别按键失灵可能原因
- 快速幂
- 了解Activity的Intent用法
- HDU3067:小t的游戏
- 中国证书CHINASSL正式启用中国证书.com
- 排序 -- 总结
- java中闭包和回调