自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 自定义类型

【结构体】     结构体是将具有不同或者相同元素类型放在一起的聚合类型。一,结构体类型的声明struct tag//struct是关键字,tag是标签,要见名知意。这里tag可省略,但不建议省略。{member_list;//声明一种类型,在c语言中,这里不能为空。}variable_list;//结构体变量列表,变量可以有多个。这里建议省略,需要用的时候再定义。注意{};,后面的分号...

2018-05-29 12:53:58 330

原创 指针与数组的总结

关于数组与指针的导图:关于数组与指针详细的总结:https://blog.csdn.net/snowyuuu/article/details/80395161(高级指针1)                                            https://blog.csdn.net/snowyuuu/article/details/80424370(高级指针2)函数指针调用的函...

2018-05-24 20:07:02 381

原创 高级指针2

前面已经学习了关于指针与数组的一些概念,现在我们继续对它们进行了解,学习指针和数组的定义与声明,还有具体是怎么传参的呢?【指针与数组的定义,声明】     通俗易懂的来说,定义是不存在的时候要它存在,而声明是不知道的是让它知道。      定义和声明之间的差别就是 定义分配了内存而声明没有;定义只能出现一次,而声明可以出现多次。1.定义为数组,声明为指针定义://test.cchar arr[]...

2018-05-23 23:13:01 153

原创 qsort函数

介绍qsort函数之前,我们先了解一下什么是回调函数??回调函数就是⼀个通过函数指针调⽤的函数。如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现⽅直接调⽤,⽽是在特定的事件或条件发⽣时由另外的⼀⽅调⽤的,⽤于对该事件或条件进⾏响应。qsort函数就是根据回调函数实现的。接下来介绍一下qsort函数:1.编...

2018-05-22 22:39:34 851

原创 c中字符串模拟实现2

1.模拟实现strncpy  原型:extern char *strncpy(char *dest, char *src, int n);          用法:#include <string.h>    功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中。    说明:        如果src的前n个字节不含NULL字符,则结果不会以NULL字符...

2018-05-22 19:46:28 285

原创 高级指针1

在之前学习数组的时候接触过指针,我们可以了解到指针和数组之间并没有关系,看前面的文章回顾一下:https://blog.csdn.net/snowyuuu/article/details/79999829那么到底什么是指针数组 ,数组指针 ,函数指针, 函数指针数组, 指向函数指针数组的指针呢?接下来我们就深入的学习下指针。【指针数组】一.定义:简单来说就是存放指针的数组。首先它是一个数组,数...

2018-05-21 17:42:15 214

原创 c语言中字符串函数的模拟实现

1.strlen函数的模拟实现:(统计字符串的长度)extern unsigned int strlen(char *s);在Visual C++ 6.0中,原型为size_t strlen(const char *string); ,其中size_t实际上是unsigned int,在VC6.0中可以看到这样的代码:typedef unsigned int size_t; 。头文件:string...

2018-05-20 15:02:32 271

原创 模拟实现memcpy和memmove

1.模拟实现memcpy(按字节的内存拷贝,无关类型)  原型:extern void *memcpy(void *dest, void *src, unsigned int count);  用法:#include <string.h>  功能:由src所指内存区域复制count个字节到dest所指内存区域。  说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。...

2018-05-19 23:00:28 182

原创 模拟实现strstr

函数原型是char*str(char *str1,char *str2);作用是找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符),如果找到,从str1中的str2位置起,返回str1中str2起始位置的指针,如果没有,返回NULL.举个例子:str1[32]="abcdedefg",str2[20]=def,通过函数str(str1,str2)可以得到“defg”....

2018-05-17 20:19:06 764

原创 冒泡排序

冒泡排序:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。1.数组方式的冒泡排序:(如果是有序的[flag=0],就直接跳出循环,进行下一个数字排序)//数组方式:#include<stdio.h>#include<window...

2018-05-17 11:18:07 248

原创 可变参数列表解析

什么是可变参数呢?我们查看printf的函数原型: int print(const char *format, ...) 第一个确定参数后面的参数...就叫做可变参数。c语言中,通过将函中为可变参数的形式,可以使函数可以接受一个以上的任意多个参数。原理:可变参数列表实际上是宏的使用,实质是栈帧结构的运用;我们通过栈帧了解到形参实例化是从右向左执行,所以我们可以通过定义一个指针变量(p),强制转化之...

2018-05-13 17:53:32 195

原创 函数的调用过程

所有抽象数据类型(ADT)都必须明确一件事——如何获取内存来存储值。内存分配方式有三种:一是从静态存储区域分配(全局变量,static变量);二是在栈上创建(局部变量,自动变量);三是从堆上分配(动态内存分配,用malloc或者new申请多大内存,用free或者delete释放内存)。下面来看一个图理解c程序的内存分配:从低地址到高地址分别为代码区,文字常量区,已初始化全局数据区,未初始化全局...

2018-05-10 17:03:56 352

原创 数据在内存中的储存

一,数据类型的介绍1.基本的内置类型:分为signed, unsigned(默认有符号数)char:字符数据类型(1byte),有符号数的大小范围是-128~127,无符号数是0~255.short:短整型(2byte),有符号数的大小范围是-2^15~2^15-1,无符号数是0~2^16-1.int:整形(4byte),有符号数的大小范围是-2^31~2^31-1,无...

2018-05-06 15:55:10 291

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除