C语言深度剖析--读书笔记3_sizeof
来源:互联网 发布:macbook air安装软件 编辑:程序博客网 时间:2024/06/06 14:18
sizeof 函数/关键字
1:sizeof作为关键字的操作
int i,r;r=sizeof i;//注意,这里sizeof后面没有括号。所以说sizeof有点像关键字printf("r is %d\n",r);
打印结果:4
2:sizeof作为函数的操作
int p=10;int r=0;r=sizeof(int)*p;//sizeof(int) 计算int类型的长度:4(单位字节) //sizeof(int)*p 等价于 {sizeof(int)} * p,即计算"int长度"和"p的值"的乘积printf("r is %d\n",r);
打印结果:40
3:sizeof运算:指针,指针指向的值
double *p=NULL;printf("sizeof(p) is %d\n",sizeof(p));//sizeof的运算对象:p,作为一个指针。 //无论何种类型的指针,其大小均为4字节printf("sizeof(*p) is %d\n",sizeof(*p)); //sizeof的运算对象:*p,是一个double类型变量。 //长8个字节,所以打印出结果为:8
打印结果:
4
8
4:sizeof运算:数组,数组的元素,的对象
int a[100];printf("sizeof(a) is %d\n",sizeof(a));//a是数组名,sizeof(数组名)=整个数组的大小 //编译器在处理sizeof(a)的时候,发现a是一个数组,就计算出该数组的长度:4*100printf("sizeof(&a) is %d\n",sizeof(&a));//&a是指向数组的地址,sizeof (地址),相当于sizeof(一个指针),所以返回:4printf("sizeof(&a[0]) is %d\n",sizeof(&a[0]));//&a[0]是a数组中第一个元素的地址,sizeof(地址),返回值同上printf("sizeof(a[100]) is %d\n",sizeof(a[100]));//计算数组a中,第100个元素的大小,int类型长度为 4
打印结果:
400
4
4
4
这里有一点值得注意:
如果用printf打印出来:a,&a,&a[0],它们都是数组a的始址。但是在sizeof运算下,结果却不同
5:补充
void fun(int b[100]){printf("sizeof(b) is %d\n",sizeof(b));}int main(){int a[100];fun(a); //传参时,传递的是数组的头指针。故打印结果为4,而不是400}
打印结果:
4
- C语言深度剖析--读书笔记3_sizeof
- c语言深度剖析 -- 读书笔记
- C语言深度剖析读书笔记
- C语言深度剖析读书笔记
- 《c语言深度剖析》读书笔记
- C语言深度剖析--读书笔记_void 关键字
- C语言深度剖析读书笔记(一)
- C语言深度剖析——读书笔记
- C语言深度剖析——读书笔记
- 读书笔记:c语言深度剖析之关键字
- 【C语言深度剖析】读书笔记之 signed ,unsigned
- C语言深度剖析--读书笔记1_定义和声明
- C语言深度剖析--读书笔记2_static关键字
- C语言深度剖析--读书笔记4_signed/unsigned关键字
- C语言深度剖析--读书笔记6_return关键字
- C语言深度剖析--读书笔记7_const关键字
- struct关键字---C语言深度剖析读书笔记9
- C语言深度剖析
- dwr+spring集成
- c++中,引用和指针的区别
- Android之UI学习篇十三:Gallery控件学习
- JAVA环境变量设置
- eclipse 快捷键
- C语言深度剖析--读书笔记3_sizeof
- 数据库的抽象设计
- ubuntu下环境变量的配置
- 世界银行贷款可持续发展农业项目商业计划书
- 任务管理器显示只任务和状态,没其他选项解决方法
- DRW详解
- struts2文件上传
- Linux shell I/O(输入/输出)重定向详解
- 为应用程序池指定标识 (IIS 7)