C语言温习总结之一《C语言深度剖析》部分(目前看到75页)
来源:互联网 发布:reduce python 编辑:程序博客网 时间:2024/05/06 04:56
第一部分 《C语言深度剖析》
原文: C语言深度解剖.pdf
1. sizeof 是关键词不是函数,可以这么写:sizeof(int)/sizeof(i)/sizeof i,但不能这么写sizeof int!“size(int) * p”表示什么意思呢?sizeof(int) = 4,所以是“4*p”!留个问题:以下代码运行,先后打印什么呢?
- #include <stdio.h>
- void fun(int a[100])
- {
- printf("\n\nIn the fun function!\n\n");
- printf("sizeof(a) = %d.\n", sizeof(a)); //care about this one
- printf("sizeof(a[100]) = %d.\n", sizeof(a[100]));
- printf("sizeof(&a) = %d.\n", sizeof(&a));
- printf("sizeof(&a[100]) = %d.\n", sizeof(&a[100]));
- }
- int main(int argc, char *argv[])
- {
- char *p = NULL;
- int a[100];
- printf("sizeof p = %d.\n", sizeof p);
- printf("sizeof *p = %d.\n", sizeof *p);
- printf("sizeof(a) = %d.\n", sizeof(a)); //care about this one
- printf("sizeof(a[100]) = %d.\n", sizeof(a[100]));
- printf("sizeof(&a) = %d.\n", sizeof(&a));
- printf("sizeof(&a[100]) = %d.\n", sizeof(&a[100]));
- fun(a);
-
- return 0;
- }
第一句:当sizeof操作的是一个结构体或者变量时,返回值为它的实际大小,这个实际大小可能包括为了字节对齐插入的多余字节。如main函数里第三个打印出"sizeof(a) = 400.";
第二句:如果操作的是一个静态大小的数组,返回整个数组的大小;
第三句:如果操作数是函数中的数组形参或函数类型的形参,sizeof给出其指针的大小。如fun()函数中打印出"sizeof(a) = 4.";
第四句:sizeof操作符不能返回动态开辟的数组或形参数组的大小。
2. 定义与声明的区别:创建了对象并为对象分配了内存是定义;只创建了对象未分配内存是声明。
3. for循环的初始化声明只在C99下允许。即for(int k = 0; k < 10; k++)这样的写法,只在C99模式下被允许。
4. strlen()函数。如下源码,输出是多少呢?
- #include <stdio.h>
- #include <string.h>
- int main(int argc, char *argv[])
- {
- char a[1000];
- int i;
- for(i = 0; i < 1000; i++)
- a[i] = -i - 1;
- printf("sizeof(a) = %d.\n", strlen(a));
- return 0;
- }
注:strlen()函数用于计算字符串长度,判断字符串是否结束的标志是是否遇到‘\0',如果遇到,则认为本字符串结束。分析到此,应该猜到打印出的结果是“sizeof(a) = 255.”了。
5. void:void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量。
void真正发挥的作用在于:
(1)对函数返回的限定; (2)对函数参数的限定。
void关键字的使用规则:
规则一 如果函数没有返回值,那么应声明为void类型
规则一 如果函数没有返回值,那么应声明为void类型
在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。
规则二 如果函数无参数,那么应声明其参数为void
规则三 小心使用void指针类型
规则四 如果函数的参数可以是任意类型指针,那么应声明其参数为void *
规则五 void不能代表一个真实的变量
0
上一篇:TCP/IP报头
下一篇:Asterisk的基本配置
相关热门文章
- linux 常见服务端口
- xmanager 2.0 for linux配置
- 【ROOTFS搭建】busybox的httpd...
- openwrt中luci学习笔记
- 什么是shell
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议
0 0
- C语言温习总结之一《C语言深度剖析》部分(目前看到75页)
- 【C语言】总结C语言深度剖析
- C语言深度剖析
- C语言深度剖析
- 《C语言深度剖析》
- C语言深度剖析
- C语言深度剖析
- C语言深度剖析
- C语言深度剖析
- C语言深度剖析总结(一)
- 关于数组,部分引用《C语言深度剖析》
- C语言字符串温习
- C语言温习
- c语言 温习整理
- 温习 C语言
- C语言温习
- c语言深度剖析 -- 读书笔记
- 《c语言深度剖析》笔记
- TCP/IP报头
- 怎么用xmind来制定学习计划
- TCP/IP报头
- jsp页面显示现在时间(因js在本地运行,所以获取的是本地时间,非服务器时间)
- 【Matlab】SIFT_feature代码学习
- C语言温习总结之一《C语言深度剖析》部分(目前看到75页)
- java 女神管理系统1
- MVC,MVP 和 MVVM差异对比
- Asterisk的基本配置
- iOS点击手势响应冲突处理办法
- mac下libxml2安装
- asterisk配置相关网站
- 2017年阅读书单(持续更新)
- asterisk代码框架
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
乌鸡怎么做好吃
乌鸡白凤丸不可随便乱吃
乌鸡炖什么补气血
乌鸡功效与作用
乌鸡炖什么好吃又有营养
乌鸡白凤丸的功效与作用
家常炒乌鸡的做法
乌鸡的做法大全家常
乌鸡的做法大全
乌鸡怎么炒好吃
乌鸡做法大全及功效
乌鸡做法大全家常
乌鸡价格行情
炖乌鸡的做法
乌鸡的营养价值
乌鸡怎么做好吃又营养
乌鸡跟什么煲汤好
乌鸡的功效与作用
乌鸡的功效作用及禁忌
乌鸡怎么炖好吃
乌鸡汤的做法大全
乌鸡炖什么好
鸡药大全
竹丝鸡
乌骨鸡
药鸡
哪些人不能吃乌鸡白凤丸
当归党参黄芪红枣乌鸡汤
乌鸦
乌鸦拼音
乌鸦坐飞机
乌鸦的拼音
乌鸦图片
乌鸦哥
狐狸乌鸦
乌鸦写字台
狐狸和乌鸦
乌鸦反哺
乌鸦简笔画
乌鸦嘴
什么的乌鸦