C语言解析
文章平均质量分 80
whiltes
Life's a Struggle!
展开
-
深入理解指针和数组
1、指针和数组首先,必须明确指针就是指针,数组就是数组,指针和数组之间没有任何关系。 * 指针变量在32位系统下,永远占4字节,其值为某一个内存地址。指针可以指向任何地方。 * 数组的大小和元素的类型和个数有关;定义数组时必须指定其元素的类型和个数;数组可以存任何类型的数据,但不能存函数。 指针和数组是完全不一样的东西,只是它们都可以“以指针的形式”或“以下标的形式”进行访问,一个是完全...原创 2018-03-23 23:45:34 · 978 阅读 · 0 评论 -
关于不同文件,结构体的定义与声明
在写简单迷宫和二叉树代码时,由于要用到栈和队列,要将二叉树的结构体声明在栈里,碰到结构体的声明问题,看了好久,终于发现错误。方法一:声明BinTree.h#include "Stack.h"typedef char BTDataType;typedef struct BinTreeNode{ struct BinTreeNode *pLeft; s...原创 2018-05-06 23:57:59 · 2380 阅读 · 0 评论 -
关于typedef的用法总结
Typedef的基本定义typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。 在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。用途一:与#define的区别定义一种类型的别名,而不只是简单的宏替换。可以用作同时声...原创 2018-05-06 23:36:11 · 380 阅读 · 0 评论 -
字符串与字符串函数
求字符串长度 长度不受限制的字符串函数 长度受限制的字符串函数 字符串查找 高级字符串查找 错误信息报告 常见的字符串分类函数 内存操作函数 以下测试历程均在vs2013运行正常1、求字符串长度 strlen ...原创 2018-04-06 15:17:57 · 252 阅读 · 0 评论 -
可变参数列表
测试环境: vs2008 1、可变参数列表为什么需要可变参数呢? 在函数原型中,列出了函数期望接受的参数,原型只能显示固定数目的参数,如果函数原型列出的参数与可调用参数不匹配或数目不一样,程序将无法运行。例如,我们想要求一系列值的平均值,这里的一系列的数目是不确定的,如果这些值存储于数组中,这个任务就很简单了,但如果我们不用数组,想要直接调用,就需要可变参数了。 什么是可变...原创 2018-03-23 23:41:56 · 317 阅读 · 0 评论 -
C语言之自定义类型
结构体类型的创建首先我们要明确为什么需要结构体? 有时候,我们要传送多种数据的组合,这是我们就需要结构体。如果函数的参数多于四个就很容易出错,效率也会降低,这是我们就可以用结构体压缩参数个数。怎样创建一个结构体 这里我们需要关键字struct,如下就是创建了一个结构体struct tag{ int a; char c;}stu;tag是结构体标签s...原创 2018-03-29 00:36:37 · 1845 阅读 · 0 评论 -
C语言的回调函数及模仿qsort
1、回调函数回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。具体应用过程基本如下: (1)定义一个回调函数; (2)提供函数实现的一方在初始化的时候,将回调函数的函数指针...原创 2018-03-23 23:36:57 · 254 阅读 · 0 评论 -
程序的编译和链接
从程序源代码到可执行文件的生成需要经历四个步骤:预处理、编译、汇编、链接。接下来让我们来看下具体的过程。(以hello.c程序为例)程序的翻译环境、执行环境和执行的过程任何一个ANSI C的实现中,都存在两个环境。翻译环境:在这个环镜中代码被转换成可执行的机器指令执行环境:它用实际代码的执行程序执行的过程:1.程序必须载入带内存中。2.程序的执行便开始,接着便...原创 2018-04-01 00:10:07 · 499 阅读 · 0 评论 -
指针和数组的经典习题
练习1:#include <stdio.h>int main(){ int a[5] = {1,2,3,4,5}; int *ptr = (int*)(&a+1); printf("%d,%d", *(a+1), *(ptr-1)); return 0;}&原创 2018-03-25 00:01:56 · 5366 阅读 · 1 评论 -
main函数参数
习题1: main函数的参数argc: 是个整型变量,表示命令行参数的个数(含第一个参数)argv: 是个字符指针的数组,每个元素是一个字符指针,指向一个字符串。这些字符串就是命令行中的每一个参数(字符串)。envc: 是字符指针数组, 数组的每一个原元素是一个指向一个环境变量(字符串)的字符指针。#include <stdio.h>#include <stdlib.h>#include原创 2018-03-23 23:47:19 · 229 阅读 · 0 评论 -
C语言的I/O操作(及简单的mycpy)
一、I/O的概念流就C语言而言,所有的I/O操作就是简单的从程序移进、移出字节的事情,因此这种字节流被称为流。 绝大多数的流都是完全缓冲的。“读取”和“写入”都是在一块被称为:缓冲区的内存区被来回复制数据。从内存中来回复制数据是特别快的,用于输出流的缓冲区只有被写满的时候才会被刷新到设备或文件。因为一次性把放满的缓冲区数据写入和逐片把程序产生的数据写入相比较效率高。显示器刷新方式为行...原创 2018-05-21 01:20:43 · 3039 阅读 · 0 评论