- 博客(6)
- 收藏
- 关注
原创 动态通讯录
上一篇文章对通讯录进行了静态处理,本片文章对其进行动态开辟空间,将通讯录改为动态通讯录,希望有什么不好的,可以优化的地方各位提出批评,我会虚心接受进行改正。contact.h#ifndef _CONTACT_H__#define _CONTACT_H__#include <stdio.h>#include <stdlib.h>#include <window...
2018-05-16 23:41:51 192
原创 实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址
本篇文章用来实现一个简单的通讯录,如有不当的地方还希望能够多加指正。要求:实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 test.c#include "...
2018-05-14 17:59:39 7046
原创 浅谈结构体+枚举+联合
初步了解结构体内容后,做一个简单的总结,还希望大神们指正并提出意见,感谢贵手。1.结构体类型创建 声明格式:struct{ 类型 成员变量1; 类型 成员变量2; ...} 变量1, 变量2; 具体关于结构体类型创建,可以分三种方式进行讲解://创建结构体的第一种方式struct Student1{ int age; float score; char sex;...
2018-05-14 17:02:15 1359
原创 高级指针相关内容
1.函数指针函数指针就是函数的指针;它是一个指针,指向一个函数。看代码如下:A) char * (*fun1)(char * p1,char * p2);B) char * *fun2(char * p1,char * p2);C) char * fun3(char * p1,char * p2);解释如下:C) fun3是函数名,p1,p2是参数,其类型为char *型,函数的返回值为cha...
2018-05-04 22:28:21 162
原创 栈帧的创建与销毁
大家经常说起函数的调用,但是很多人并不清楚函数调用过程的具体实现是怎样的,今天在这里我将通过一个例子浅谈自己对函数调用的理解。函数调用过程要为函数开辟栈空间,用于本次函数的调用中临时变量的保存、现场保护。这块栈空间我们称之为函数栈帧。栈帧的维护需要我们了解 ebp 和 esp 两个寄存器,在函数调用的过程中这两个寄存器存放了维护这个栈的栈底和栈顶指针。ebp 存放了指向函数栈帧栈底的地址;esp ...
2018-05-01 23:07:40 649 1
原创 可变参数源码分析的自我理解
1.获取参数值对于一般的函数,我们可以通过参数对应在参数列表里的标识符来得到。但是参数可变函数那些可变的参数是没有参数标识符的,它只有“…”。我们知道函数调用时都会分配栈空间,参数是连续存储在栈里面的,那么也就是说,我们只要得到可变参数的前一个参数的地址,就可以通过指针访问到那些可变参数。参数可变函数在可变参数之前必有一个参数是固定的,并使用标识符,而且通常被声明为char*类 型,printf函...
2018-05-01 20:02:08 107
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人