![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言进阶
文章平均质量分 67
小莱昂纳德
这个作者很懒,什么都没留下…
展开
-
C语言之数据类型---内存、补码、数据转化!
一,内存 1,内存的最小单位是“位”(bit),但编址的最小单位为“字节”(Byte)。 2,逻辑上的存储可以是多维的,例如多维数组,但实际的存储都是线性的、一维的。二,补码1,规则 注:其运算规则是可逆的。0的补码为0符号位同普通位一并参与运算补码可以使加减乘除全部变加法2,char(8位)补码的展示3,数据类型1,整型原创 2018-01-26 22:53:33 · 429 阅读 · 0 评论 -
C语言之进程空间---进程空间、数据分布、函数压/出栈
一,进程空间与数据分布程序,是经源码编译后的可编译文件,可执行文件可以多次被执行,比如我们可以多次打开某个应用。进程,是程序加载到内存后开始执行、至执行结束,这样的一段时间概念,多次打开的应用,每打开一次都是一个进程,当我们关闭该应用时,该进程也就结束了。程序是静态概念,而进程是动态/时间概念。 接下来,通过一个程序实例来说明:include<stdio.h>i...原创 2018-01-29 04:17:23 · 850 阅读 · 1 评论 -
C语言之数组
(一)数组篇一,一维数组1,定义存储相同类型数据,且在内存空间连续的一种数据结构类型。数组三要素包括:起始地址、步长、范围(或类型、组名、大小)。intarray[M]; //array的类型为”int [M]”2,初始化部分初始化,其余元素补0;int array[10]={1,2,3};清零int array[10]={0};越界不检int原创 2018-02-07 00:09:54 · 614 阅读 · 0 评论 -
C语言之指针
(二)指针篇一,内存编址与变量地址变量的地址为所占连续内存中最低位的地址。 &a == 0xffff fffa &b == 0x0000 ffd1 &c == 0x0000 0010二,指针与指针变量1,指针的本质指针实质就是一个有类型的地址int a=0x12345678; printf("&a=%p\n",&a...原创 2018-02-08 15:46:38 · 403 阅读 · 0 评论 -
C语言进阶之函数
一,多参返回引例:求两个整数的和与差?int foo(int *pSum,int *pDif){ *pSum=a+b; *pDif=a-b; return 0;}由于函数只有一个返回值,当我们需要返回多个值及返回函数调用状态时,我们就要用到多参返回,即:通过传递“调用空间的地址”的方式修改空间的值,以达到传值的目的。二,函数指针函数的实质是一段可执行的代码。函数名保存的是指向这段代码原创 2018-02-10 21:15:21 · 527 阅读 · 2 评论 -
C语言之动态内存分配与释放
一,堆内存1,堆内存特点堆内存可以存放任意类型的数据,但需要自己申请与释放。2,堆大小堆大小,想像中的无穷大,但实际使用中,受限于实际内存的大小和内存是否有连续性。二,堆内存的申请与释放1,malloc函数函数声明:·void *malloc(size_t Size)所在文件:stdlib.h参数:size_t Size (Size表示要申请的字节...原创 2018-02-12 22:00:34 · 5437 阅读 · 1 评论 -
C语言之强大的结构体
一,struct 自定义类型介绍一门语言通常先定义基本数据类型,还有很多自定义类型,不可能由语言一一实现。于是乎,给出一个struct关键字,开放自定义类型权限,于是便有了所有类型。此之谓“一生二,二生三,三生万物”。二,结构体类型定义1,无名结构体类型不带来多余的类型名,只可在定义类型时定义变量。#include<stdio.h>#include&l...原创 2018-02-13 23:12:42 · 1940 阅读 · 0 评论 -
C语言之共用体(union)
读书三年,便知天下无病不治; 治病三年,便知天下无方可用;(一)共用体篇与结构体类似,区别在于对内存的使用方式。结构体是每个成员之间分别占用自己的空间,而共用体,顾名思义,就是各成员之间共用一段内存。一,类型定义与变量定义1,定义类型union 共用体名{ 成员列表;};例:union Untest{ char c; short ...原创 2018-02-14 12:06:50 · 5389 阅读 · 1 评论 -
C语言之枚举类型(enum)
(二)枚举篇1,枚举类型定义enum 枚举类型{ 常量列表//各常量之间以逗号隔开};例:enum DAY{ MON,TUE,WED,THU,FRI,SAT,SUN};枚举类型是个集合。集合中的元素,也就是枚举成员,是一些命名的整型常量,元素之间用逗号隔开。第一个枚举成员的默认值为0,后续成员值依次递加1。可以自定义枚举类型的值,从而自定义某个...原创 2018-02-16 13:20:55 · 10130 阅读 · 6 评论 -
C语言之递归
一,什么是递归?递归是一种函数的一种使用方式!当函数调用自身时,我们就称为“递归”。二,从实例中理解递归1,年龄推算问题有 5 个人坐在一起,问第 5 个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁 数,他说比第 3 个人大 3 岁。问第 3 个人,又说比第 2 个人大 2 岁。问第 2 个人,又说比第 1 个人大 2 岁。最后问第 1 个人,他说是 10...原创 2018-02-16 20:41:37 · 1994 阅读 · 0 评论 -
数据结构之线性结构(连续存储-静态链表篇)
数据结构-线性结构-连续存储-静态链表(数组)C语言实现:头文件:#include<stdio.h>#include<stdlib.h>#include<assert.h>结构体构造类型:typedef struct { int *base;//存储数组首地址 int len;//数组空间大小 int cnt;/...原创 2018-02-19 12:16:46 · 279 阅读 · 0 评论 -
数据结构之线性结构(离散存储-动态链表篇)
数据结构-线性结构-离散存储-动态链表C语言实现:头文件:#include<stdio.h>#include<stdlib.h>#include<assert.h>结构体构造类型-链表节点类型:typedef struct node{ struct node *next; int data;}Node;函数接口...原创 2018-02-19 17:13:16 · 234 阅读 · 0 评论 -
C语言之位操作
一,位操作与逻辑操作位操作不同于逻辑操作。逻辑操作是一种整体操作,而位操作是针对内部数据位补码的操作。逻辑操作只有真假,位操作只有0和1。运算符如下: 二,数据的二进制表示1,八位二进制的补码 2,二进制打印功能:显示二进制补码 三,位操作1)位于(&amp;amp;amp;amp;amp;amp;amp;amp;amp;) 2)位或(|) 3)位取反(~) 4)位异或(^) 5)位左移(&amp;amp;am原创 2018-05-18 23:53:30 · 2090 阅读 · 0 评论