c语言
virgofarm
这个作者很懒,什么都没留下…
展开
-
关于库函数free时怎样知道要释放空间的大小
转载:请注明出处,http://blog.csdn.net/zonghongyan314/article/details/41786037谢谢!malloc、free函数:malloc是C/C++中的动态内存分配的标准库函数,函数原型:void* malloc(unsigned int size);其功能就是在堆上动态开辟内存空间,它的特点: 1、返回值为void*,(void* 类...转载 2018-05-02 19:07:09 · 1609 阅读 · 0 评论 -
#c语言重点关键字介绍
一、1.定义和声明的区别: 定义创建了对象并为对象分配了内存;而声明只是创建了对象,并没有为对象分配内存。一、2.寄存器: cpu寄存器内存 寄存器相当于皇上身边的太监,只是起到中转站的作用。一、3.register修饰符的注意点: register变量必须是一个单个的值,其长度应小于等于整形的长度,原创 2018-01-23 11:30:09 · 143 阅读 · 0 评论 -
c语言中的束缚
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2018-03-01 11:06:01 · 204 阅读 · 0 评论 -
C语言中的束缚
1.编写函数: unsigned int reverse_bit(25unsigned int value); 这个函数的返回 值value的二进制位模式从左到右翻转后的值。 如: 在32位机器上25这个值包含下列各位: 00000000000000000000000000011001 翻转后:(2550136832) 100110000000000000000000000000原创 2018-03-02 11:39:11 · 171 阅读 · 0 评论 -
函数的调用(栈帧)
要想了解函数的调用,首先我们必须先了解几个重要的寄存器1.EIP:程序计数器,表明当前正在执行程序的下一条的地址,而计算机正是通过EIP来确定将要执行哪条程序。2.EBP:栈底寄存器3.ESP:栈顶寄存器深入研究函数的调用过程,我们可以通过下面一段简单的代码:#include <stdio.h>int Add(int x, int y){ int z = 0; z = x+y;原创 2018-03-12 16:59:37 · 420 阅读 · 0 评论 -
可变参数列表解析
定义:什么叫可变参数列表呢,顾名思义,可变参数,就是函数可以接受的参数是可变的,可以接受1个以上任意多个参数。(至少是一个)接下来先看一个列子:#include &lt;stdio.h&gt;#include &lt;stdarg.h&gt;int average(int n,...){ va_list arg; int i = 0; int s...原创 2018-03-16 18:45:45 · 144 阅读 · 0 评论 -
用c语言实现日历功能
#include &lt;stdio.h&gt;#include &lt;windows.h&gt;#pragma warning(disable:4996)void print(int week, int day){ int i = 0; int date = 1; int flag = week; //printf("%d %d\n", week, ...原创 2018-03-18 19:39:38 · 16975 阅读 · 2 评论 -
深度理解指针及相关概念
一:首先我们必须清楚以下几点概念:1.指针:指针就是地址。2.指针变量:指针变量是变量,具有存储空间。就像int,float等类型一样,当然,指针有别的变量不具有的特殊用法。3.变量指针:是变量的地址。二: 要知道,指针也是有类型的,指针指向什么类型就是什么类型的指针,例如:1.指针的类型:我们将type+*叫做指针的类型,type指的是指针所指向的类型,type是指最后一个*之前所有的东西,例如:原创 2018-03-21 19:15:55 · 252 阅读 · 0 评论 -
结构体、枚举、联合等自定义类型介绍
一:要想了解这些数据类型,首先我们得知道在c语言中都有哪些数据类型,以及为什么要有数据类型。1.类型的意义:决定使用这种类型所要开辟内存空间的大小;如何看待这块内存空间。2.c语言中都有哪些数据类型,如图:这里我们主要讲结构体、枚举、联合体等自定义数据类型二:结构体1.概念:将相同或不同属性的类型数据放在一起。2.结构体声明:struct A...原创 2018-03-28 10:43:35 · 222 阅读 · 0 评论 -
c语言实现通讯录功能
测试环境:vs2013 实现一个通讯录; 通讯录可以用来存储1000个人的信息,每个人的信息包括: 姓名、性别、年龄、电话、住址 提供方法: 1. 添加联系人信息 2. 删除指定联系人信息 3. 查找指定联系人信息 4. 修改指定联系人信息 5. 显示所有联系人信息 6. 清空所有联系人 7. 以名字排序所有联系人 感觉写的还是有点问题,废话太多,但毕...原创 2018-04-02 15:57:44 · 9220 阅读 · 4 评论 -
如何将一个十进制数对应的二进制数的任意 一位置零或一
环境:vs2013#include &lt;stdio.h&gt;#include &lt;windows.h&gt;void MoveSteps(int num, int size, int flag){ int tmp = 1; tmp &lt;&lt;= size - 1;//将1移到要改的那一位上 if (flag == 1){ ...原创 2018-04-04 10:57:32 · 1513 阅读 · 0 评论 -
c语言动态内存管理
一:动态内存管理二:柔性数组:1.声明:struct A{ int i; int arr[];//不指定数组大小};2.柔性数组特点:(1)结构中的柔性数组成员前⾯必须⾄少⼀个其他成员。 (2)sizeof 返回的这种结构⼤⼩不包括柔性数组的内存。 (3)包含柔性数组成员的结构⽤malloc ()函数进⾏内存的动态分配,并且分配的内存应该⼤于结构的⼤⼩,以适应柔性数组的预期⼤原创 2018-04-11 19:57:12 · 128 阅读 · 0 评论 -
动态通讯录
测试环境:vs2013address_list.h文件#ifndef _ADDRESS_LIST_H_#define _ADDRESS_LIST_H_#include &lt;stdio.h&gt;#include &lt;string.h&gt;#include &lt;stdlib.h&gt;#pragma warning(disable:4996)typedef...原创 2018-04-12 22:47:21 · 146 阅读 · 0 评论 -
C语言操作符总结
操作符 分类: 1、算术操作符:+ = * / % 2、移位操作符:<< >> 3、位操作符:& //按位与 | //按位或 ^ //按位异或 4、赋值操作符:+= -= *= /= %= >>= <<=原创 2017-12-20 20:40:37 · 142 阅读 · 0 评论 -
一个数组中只有两个数字是出现一次,其他所有数字都出现了两次。 找出这两个数字,编程实现。
# include <stdio.h># include <windows.h>void find_once(int arr[], int len){ int i = 0; int j = 0; for (i = 0; i < len; i++) { int k = 0; for (j = 0;...原创 2018-07-10 11:26:37 · 125 阅读 · 0 评论