引子:
好久没碰C了,感觉有点生疏了,不想扔下,于是乎写一篇日志回忆一下。欢迎大家转载,转载请注明出处。
1.
A>什么是指针
B>什么是数组
C>指针与数组有什么关系?
(最基本的几个概念,学C必须懂的 不懂得可以百度,google,也可以留言)
/************************************************************************************************************************************************************************/
内存管理
1.代码段:存放操作指令,readonly
2.数据段:存放已初始化的全局变量,也就是存放静态分配的变量和全局变量
3.BBS段:存放未初始化的全局变量,内存中BBS段全置0
4.堆(heap):存放程序中动态分配的内存
5栈:存放局部变量,但不包括static变量
(画个图
让大家更明白 哈哈 图画的真不错,看了的人可以想一下那个波浪代表什么意思,想知道的可以留言)
1.进程空间地址如何管理
2.进程地址如何映射到物理内存
3.物理内存如何被管理
虚拟内存管理技术
用户空间
内核空间
(内存管理还是要好好学,自己感觉操作系统没怎么学好,还要加深啊 )
/************************************************************************************************************************************************************************/
自定义strlen函数。(不用任何自定义变量)
int my_strlen(const char *str)
{
assert(str==NULL);
return ('/0'==str)? 0 , 1+my_strlen(++str);
}
//(C语言中有些很巧妙的方法,很好玩的,但是不推荐,在保证大家能读懂的情况下还是可以用的)
/************************************************************************************************************************************************************************/
int a[5];
当a作为右值时代表数组元素的首地址,而非数组的首地址
a <==>&a[0]
!!! a不能作为左值
&a+1偏移量为 sizeof(a)
&a代表数组a的首地址
指针与指针数组
int *p1[10];//指针数组
int (*p2)[]10;//数组指针 相当于 int (*)[10] p2;//匿名数组
[]优先级高于*
inta[5][5];
int (*p)[4];
p=a;
问: &p[4][2] - &a[4][2]的值为多少?
解释:a代表a[0]的首地址
void fun(char a[3][4]);
<====>
void fun(char (*p)[4]);
<====>
void fun(char p[][4]);
//因为a代表a[0]的首地址
void fun(char *p[4]);
<====>
void fun(char **p);
char a[3][4];<====> char (*p)[10];
char *a[5];<====>char**p;
(怎么说呢 数组与指针是很好玩的东东 其实数组和指针没啥关系 他们只是穿着很像的衣服而已 所以要分清他们还得从本质上去区分
很搞的 但是觉得弄懂了会很有成就感)
/************************************************************************************************************************************************************************/
内存对齐
(在结构体中要注意的,搞不好就会出个幺蛾子,很简单 不解释 不懂请举手)
/************************************************************************************************************************************************************************/
const
(1)定义const常量
(2)修饰函数参数、返回值、甚至函数体
(具体例子就不讲了 方法就是在*号那里画个竖线 )
/************************************************************************************************************************************************************************/
extern “C”
C不支持函数重载,C++支持重载。
C++函数名编译后变为像_foo_int_int //函数参数会加到函数名中
(C与C++是两门不同的语言 不要认为C++包含C 而应该是C++兼容C 并不是包含 他们是两门不同的语言 至少编译规则就不同)
/************************************************************************************************************************************************************************/
自定义strcpy函数
原型:
char *strcpy(char *strDest, const char* strSrc)
{
assert((strDest!=NULL)&&(strSrc!=Nll));
char *address = strDest;
while((*strDest++ = *strSrc++)!='\0')
NULL;
return address;
}
这是C++string类里面的类方法 有空多看看 库函数 基本都写的很经典
今天就到此结束 哈哈 洗洗睡觉吧
End with a new day !
分享到:
相关推荐
对话框乱弹的小程序,点击开始后会不停弹300个大小不等位置不确定的对话框,伴随windows的一些报警声,很有节奏的感觉。
使用fiddler工具进行抓包,使用python进行osc乱弹抢沙发
into沙龙第期康国庆乱弹传统企业转型以及与互联网结合的方式PPT教案.pptx
《浅析新媒介生态环境下广播娱乐节目的编辑特征——以FM101.1西安乱弹“刘翔来了”为例》.zip
《浅析新媒介生态环境下广播娱乐节目的编辑特征——以FM101.1西安乱弹“刘翔来了”为例》.doc
《浅析新媒介生态环境下广播娱乐节目的编辑特征——以FM101.1西安乱弹“刘翔来了”为例》-论文.zip
修复单类代码生成器4个问题。 2.新增创建加载数据库时,表名过滤功能。 3.表名生成命名规则,字符串替换功能。 4.模板中字段排序方法公开。 5.字段默认值函数的处理。 6.导出的sql脚本中,单引号 '的问题。...
随着Ajax技术的出现、盛行,本被忽视认为是二流编程语言的JavaScript脚本也开始了新的盛行,大量的JavaScript框架的出现如Microsoft Asp.Net Ajax、jQuery等。Ajax已经成为这些脚本框架必不可少的组成部分了,而且...
Vb恶搞程序,逗您玩,关不完的消息框(弹出窗口),其实是能关掉的,只要你一直点下去,而且到最后还可以看到传说中的比尔盖茨,哈哈。程序是个小恶搞程序,对你的系统不会造成任何伤害,只是玩玩的,源代码开源。
非常好用的修改运营商压缩文件,解压之后配合手机乱弹
使用软件群发时乱弹窗口很讨厌?一个桌面打开程序太多放不下了?您可以使用阿尔法虚拟桌面软件可以解决这些所有的问题。在您电脑里建几个虚拟桌面,别人看不到您在干什么,甚至是打游戏,使用热键盘可以快速在不同...
《自己动手写前端框架》电子书.pdf 1. Tiny框架 2. 算法感想 3. 悠然乱弹 4. 未分类
是不是早已厌倦国内各大播放器厂商,解码能力不行,又乱弹广告的德行了?这款播放器一定会满足你的需求
哪里都没有找到下载,就自己弄了下,方便随时查看 <br>第 1 章 闪烁吧!看看extjs那些美丽的例子。 第 2 章 震撼吧!让你知道ext表格控件的厉害。 第 3 章 歌颂吧!... 常见问题乱弹 附录 C. 后记
新起点工作室针对现在大多数音乐网站页面广告繁多,乱弹窗口而独立开发出一套纯htm格式的音乐网,站内主要以收集大量的Flash动画为主,盗用了QQ163的部分试听歌曲连接,整个网站能给人一种清新整洁的感觉!
技术乱弹之hand in hand with antlr(md格式已乱请看列表中的dox版) 版权声明: 本文由林氏原创,遵循GPL许可,你可以自由地对本文进行任何目的的修改、转载、引用和发布,但基于此文所作的任何修改、转载、引用和...
专业清除流氓软件 电脑被各种流氓软件占用资源 防止他人恶意盗取资料 平时电脑上网办公之类的,不经意之间电脑可能会被自动安装了不需要的软件,有的时候可能会导致无法卸载,乱弹各种广告,甚至会影响电脑运行速度...
帖子乱弹社区API服务端 技术栈 node + koa2 + koa-router + ES6 + mysql + mongodb 工程结构 └── PPAP.server ├── config # 配置文件 │ └── index.js ├── controller # 操作层 验证视图层用户输入...