c
文章平均质量分 84
qq_33417547
我是陕西人
展开
-
详解可变参数列表
经过一段时间的C语言学习,开始对printf函数产生了好奇,它可以接受不确定数目的参数。我们来看一下他的函数原型: int printf(const char*format,...)这个其实就是可变参数,我们来看看它的源代码: 123456789原创 2016-08-31 22:37:02 · 285 阅读 · 0 评论 -
指针的问题
今天我们来看看指针的问题:指针:用来保存地址的“变量”叫做指针。你可以理解为指针就是地址。如何定义一个指针:int a = 1;int *p = &a;p现在是a的指针,对p进行*(解引用)就是a的值1。指针常量:*(int *)10 = 100;意思就是我们将10强转成int *类型的整形地址,再对其就行*(解引用)就拿到一块空间,然后再对其赋值。常原创 2017-04-19 10:12:27 · 1173 阅读 · 0 评论 -
宏和函数的区别
先说宏和函数的区别:1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型.2. 宏的参数替换是不经计算而直接处理的,而函数调用是将实参的值传递给形参,既然说是值,自然是计算得来的.3. 宏在编译之前进行,即先用宏体替换宏名,然后再编译的,而函数显然是编译之后,在执行时,才调用的.因此,宏占用的原创 2017-03-25 20:06:41 · 969 阅读 · 0 评论 -
sizeof关键字和strlen的比较
首先sizeof()是一个关键字(在编译期间就运算了),他不是一个函数。我们发现b的值没有变化。strlen()用来计算指定的字符串s 的长度,不包括结束字符"\0"。sizeof(求内存大小)和strlen(求长度)的差异:1、整形数组:int a[] = { 1, 2, 3, 4 };printf( "%p\n",a)原创 2017-03-25 19:35:24 · 377 阅读 · 0 评论 -
计算一个数二进制中1 的个数(多种方法)
这是一个蛮经典的题。首先我们会想到最简单的方法就是,用什么方法判断这一位是不是1,如果是1就count++,如果不是就向右移一位, 从新循环。那么,怎么判断这一位是什么呢。其实很简单,我们只需将这个数和1相与(&),就可以拿到这一个。下面是代码实现:#include using namespace std;int count_one_bits(int n){ int coun原创 2016-09-28 11:23:15 · 1346 阅读 · 1 评论 -
关于链表中是否带环和找到环的入口点
面试题一:判断链表是否带环int FndLoop(pLinkList list){pLinkNode fast=list->pHead;pLinkNode slow=list->pHead;assert(list);while(fast!=NULL && fast->next!=NULL){slow=slow->next;fast=fast->next->next;if( f原创 2016-09-02 22:33:32 · 414 阅读 · 0 评论 -
c语言中链表的实现
linklist.h#ifndef __LINKLIST_H__#define __LINKLIST_H__#include#include#includetypedef int DataType;typedef struct LinkNode{DataType data;struct LinkNode* next;}LinkNode,*pLinkNode;typedef原创 2016-09-02 22:24:09 · 347 阅读 · 0 评论 -
c语言中顺序表的实现
今天我们来实现一下顺序表。代码如下:Seqlist.h#ifndef __SEQLIST_H__ #define __SEQLIST_H__ #include #include #include #define INIT_SIZE 2 #define ADD_SIZE 3 typedef int DataType; ty原创 2016-09-02 22:11:15 · 420 阅读 · 0 评论 -
c语言项目 注释转换 (c———c++)
题目要求:要将全部的c语言风格的注释转换为c++风格的注释,如下图所示,需要将input.c文件经过注释转换程序转换为output.c文件所示。这是测试结果:首先我们来分析一下这个题目,在做这个项目时,我们需要引进有限状态机这个概念。那我们先来了解一下什么是有限状态机。有限状态机FSM是软件上一种常用的处理方法,他把复杂的控制逻辑分成有限个稳定状态,在每个状原创 2016-08-31 22:50:33 · 794 阅读 · 0 评论 -
通讯录的实现(三) ——————文件实现
我们再做通讯录这个小项目的时候,前边已经实现过静态版本和动态版本了,今天我来实现一下文件版本的,文件版本会将你以前录入的信息保存起来,这样方便以后的查询和操作。文件版本实现起来并不难,只需在动态版本上稍作修改即可。下面是我的源码:"Contact.h"12345678910原创 2016-08-31 22:47:45 · 678 阅读 · 0 评论 -
通讯录的实现(二) ———————动态实现
动态实现实现通讯录,就需要使用malloc和realloc等这些函数,首先我们先来介绍一下这些函数。1(1)void *malloc(unsigned int size);size是需要分配的字节数。1(2)void *calloc(unsigned原创 2016-08-31 22:46:06 · 630 阅读 · 0 评论 -
通讯录(一) —————— 静态实现
实现一个通讯录;通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址提供方法:1.添加联系人信息2.删除指定联系人信息3.查找指定联系人信息4.修改指定联系人信息5.显示所有联系人信息6.原创 2016-08-31 22:41:39 · 448 阅读 · 0 评论 -
malloc free 解析
首先看一下malloc和free的基本概念void *malloc(long NumBytes);该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 void free(void *FirstByte);该函数是将之前用malloc分配的空间还给程序或者是操作系统,也就是释放了这块内存,让它重新得到自由。 简单用法: /原创 2017-05-14 10:02:16 · 1186 阅读 · 0 评论