C语言学习笔记
程序员小马z
把别人的东西变为自己的东西!!!
展开
-
【链表】-1
#include <stdio.h> #include <malloc.h> #include<stdlib.h>typedef struct Node{ int data;//数据域 struct Node * pNext;//指针域,指向跟此节点数据类型一样的下一个节点}NODE,*PNODE;//NODE等价于struct...原创 2018-04-07 14:45:15 · 160 阅读 · 0 评论 -
【指针】-4
指针的定义 地址 内存单元的编号 从零开始的非负整数 范围:【0–2^64-1】 指针的分类 1. 基本类型指针 2. 指针与数组 3. 指针与函数 4. 指针和结构体 5. 多级指针 交换两个数字void hu...原创 2018-03-28 16:39:31 · 158 阅读 · 0 评论 -
【指针】-5
如何通过被调函数修改主调函数普通变量的值实参必须为该普通变量的地址形参必须为指针变量在被调函数中通过 *形参名 = ….. 的方式可以修改主调函数的值void f(int *p, int *q)//形参名字是p和q,接收实参数据的是p和q{ *p = 1; *q = 2;}int main(){ int a = 5; int b ...原创 2018-03-28 16:52:24 · 153 阅读 · 0 评论 -
常规操作
struct Arr{ int * pBase;//存放的数组第一个元素的地址 int len;//数组所能容纳的最大元素的个数 int cnt;//当前数组有效元素的个数};void init_arr(struct Arr *, int length);bool append_arr(struct Arr *pArr,int value);bool insert...原创 2018-04-04 10:03:47 · 422 阅读 · 0 评论 -
理解typedef
typedef int ZHANGSAN;//为int再重新多取一个名字,ZHANGSAN等价于inttypedef struct Student{ int sid; char name[100]; char sex;} ST;//给struct Student重新命名为STint main(){ struct Student st; struct...原创 2018-04-04 11:04:05 · 168 阅读 · 0 评论 -
【指针】-6
指针确定一个一维数组需要2个参数void f(int *pArr, int len){ pArr[2] = 10;//pArr[2]==*(pArr+2)==*(a+2)==a[2] int i; for (i = 0; i < len; i++) { printf("%d\n", pArr[i]); ...原创 2018-03-29 09:10:32 · 142 阅读 · 0 评论 -
链表p != NULL 和 p->next !=NULL区别
while(p!=NULL){ printf("%d",p->data); p=p->next;} 第一步:p指向第一个节点,第一个节点数据不为空;打印数据:1;p=p->next,指向第二个节点; 第二步:p指向第二个节点,第二个节点数据不为空;打印数据:2;p=p->next,指向第三个节点; 第三步:p指向第三个节点,第三个...原创 2018-04-25 09:31:55 · 16109 阅读 · 6 评论 -
c语言实现一个列表list
#include "stdafx.h"#include &lt;stdio.h&gt; #include &lt;malloc.h&gt; struct plist {//定义列表结构体 int A[1000]; int n;};void List_Init(plist *list);void List_Append(plist* list, int value...原创 2018-06-28 11:39:31 · 41674 阅读 · 0 评论 -
C语言实现检查括号匹配
从头到尾扫描字符串,对不同种类的括号,遇到开括号就入栈,遇到闭括号则检查是否与栈顶开括号类型相同,相同则出栈,否则报错括号不匹配。#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <string.h>// 在start与end中搜索匹配 int fun(cha...转载 2018-07-03 21:18:17 · 16139 阅读 · 0 评论 -
【指针】-3
int main(){ int *p;//p是变量名,类型是int *。int *实际就是存放int变量地址的类型 int i = 3; int j; p = &i; /* 1. p保存了i的地址,因此p指向i 2.p不是i,i也不是p,更准确的说:修改p的值不影响i的值 3....原创 2018-03-28 10:29:38 · 174 阅读 · 0 评论 -
【指针】-2
多维数组与指针 二维数组在内存中实际还是一维的。指向多维数组的指针变量 多维数组指针定义为:int (*p)[4]实战演练 通过输入指定行数和列数打印出二维数组对应任一行任一列元素的值。int main(){ int a[3][4] = { 1,3,5,7,9,11,13,15,17,19,21,23 }; int(*p)...原创 2018-03-28 09:59:39 · 227 阅读 · 0 评论 -
【链表】-2
typedef struct Node{ int data;//数据域 struct Node * pNext;//指针域,指向跟此节点数据类型一样的下一个节点}NODE,*PNODE;//NODE等价于struct Node, PNODE等价于struct Node *类型//函数声明PNODE create_list(void);void traverse_lis...原创 2018-04-07 16:06:59 · 148 阅读 · 0 评论 -
【指针】-7
动态内存分配传统数组的缺点为什么需要动态分配内存动态内存分配举例,动态数组的构造静态内存和动态内存的比较跨函数使用内存的问题 传统数组的缺点:数组长度必须实现制定,且只能是长整数,不能是变量例子:int a[5];int len= 5;int a[len];//error传统形式定义数组,该数组的内存程序员无法手动释放,数组一旦定义,系统为该数组...原创 2018-03-31 08:32:24 · 111 阅读 · 0 评论 -
【结构体】
为什么需要结构体 为了表示一些复杂的事物,而普通的数据类型无法满足实际需求 什么叫结构体 把一些基本的类型组合在一起行程的一个新的符合数据类型,叫做结构体4 如何定义结构体 3种方式 struct Student//第一种{ int age; float socre; ...原创 2018-03-31 11:47:29 · 237 阅读 · 1 评论 -
枚举
枚举什么是枚举 把一个事物所有可能的取值一一列举出来怎么使用枚举//只定义了一个数据类型,并没有定义变量,该数据类型的名字是enum WeekDayenum WeekDay{ MonDay,TuesDay,WednesDay,ThursDay,FriDay,SatuDay,Sunday};void f(enum WeekDay i){ switch (...原创 2018-03-31 14:58:55 · 211 阅读 · 0 评论 -
补码
学习目标:int类型的变量所能存储的数字范围是多少?最小负数的二进制代码是多少?最大正数的二进制代码是多少?已知一个正数的二进制代码求出原始数字数字超过最大正数会怎么样补码: 原码也叫符号绝对值码 最高位0表示正,1表示负,其余二进制是该数字的绝对值的二进制位- 原码简单易懂- 加减运算复杂- 存在加减乘除四种 运算,增加了CPU的负担- 零的表示不唯一...转载 2018-03-31 16:16:16 · 384 阅读 · 0 评论 -
链表
数组优点 存取速度快缺点 需要一个连续的很大的内存插入和删除元素效率都很低链表 确定一个链表需要一个参数,头指针优点 插入和删除效率高,不需要一个连续很大的内存缺点 查找某个位置的元素效率低 ...原创 2018-03-31 19:25:44 · 147 阅读 · 0 评论 -
C语言-test
C语言-test什么叫分配内存,什么叫释放内存?操作系统把某一块内存空间的使用权利分配给程序叫做分配内存操作系统把分配给该程序的内存空间的使用权限收回,该程序不能够再使用这一块内存空间,这叫释放内存附注:释放内存空间不是把内存的内容清零变量为什么要必须初始化不初始化,则变量通常是垃圾值详细说明系统如何执行:int i=5;这个语句编译器请求操作系统为i分配存储空间...原创 2018-03-31 20:20:27 · 5434 阅读 · 0 评论 -
【指针】-1
指针认识指针 声明一个名为i_pointer的指针 将变量i的地址取出来,赋值给i_pointer指针两个指针操作符 将i取地址赋值飞pointer指针,然后再打印pointer指针。值为2000指针与指针变量 可以把“指针”想成指针变量的索引(地址),而指针变量跟int i 中的变量一样定义一个指针变量 将po...原创 2018-03-26 21:22:57 · 698 阅读 · 0 评论 -
C语言实现可扩充的数组
#include "stdafx.h"#include <stdio.h> #include <malloc.h> struct List_Exten { //定义结构体数组 int *A; int n; int c; // capacity};void List_Init(List_Exten* List);void Lis...原创 2018-06-28 16:23:06 · 8563 阅读 · 0 评论