![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 55
dh爱你的我
Loving program,more loving jing!
展开
-
C语言main函数参数
C语言main函数参数首先主函数参数的一般写法:int main(int argc, char* argv[], char* envp[]) { //主函数程序代码段 return 0; }这里用test.exe举个例子在命令行里输入执行程序,例:c:\test.exe -a 3 4argc:代表着命令行参数的个数,且与argv[ ]相对应,如上例可得argc=4argv[ ]:里面保存原创 2016-07-28 14:46:39 · 620 阅读 · 0 评论 -
C语言预处理器
调试环境:vs2015+win10 C预处理器就是将源文件经过一些简单的处理,最常用的是删除注释、处理#include指令和处理#define指令。 文件包含 #include指令:用于在编译期间把指定文件的内容包含仅当前文件中,这样可以使大量的指令和声明更加方便。 引入方式: #include//引入库里面的文件 #include"filename"//首先会在本地文件里面查找,未原创 2016-12-02 12:33:26 · 480 阅读 · 0 评论 -
C语言输入与输出
调试环境:win10+vs2015 声明:本篇博客主要讲怎样使用C语言标准库里面的输入输出函数输入输出简单机制我们在使用输入输出函数的时候,不管是从文件还是控制台,它都是会先存放在缓冲区里面,但需要使用的时候才会在缓冲区里面提取。 例如:#include<stdio.h> int main() { int a, b; scanf("%d %d", &a, &b); pri原创 2016-11-23 22:53:51 · 20221 阅读 · 0 评论 -
C语言随机数的产生
调试环境:win10+vs2015在编程中我们经常需要使用随机数用来进行测试,因此就需要使用到rand()函数,这里就来详解一下C语言随机数生成器。rand()函数的原型是:int rand ( void ); 该函数不需要传参,返回一个伪随机整数范围在0到RAND_MAX在vs2015中,RAND_MAX的定义为: #define RAND_MAX 0x7fff 也就是十进制的32767在ran原创 2016-11-22 00:22:03 · 4341 阅读 · 0 评论 -
栈应用实例--迷宫问题
调试环境:vs2015+win10众所周知,栈是一个非常常见且有用的数据结构。 这里讲解一下利用栈来实现迷宫问题。使用递归实现假设有一迷宫 其中:1代表墙;0代表路径 为简化编程,假设左边界0处为迷宫入口,下边界0处为迷宫出口库。分析问题: 创建一个结构体,表示在迷宫的坐标 从文件中读取迷宫 获取迷宫路径,需要判断是否可走,将走过的地方标记为2 代码实现:#include<assert.h原创 2016-12-02 20:54:07 · 811 阅读 · 0 评论 -
数据结构之非递归遍历和层次遍历(C语言版)
调试环境:win10+vs2015树是一种非常重要的数据结构,遍历树就变得尤为重要。 这里主要讲利用栈实现非递归遍历二叉树和利用队列实现层次遍历二叉树。非递归遍历 首先需要编写一个树的结构体和相关函数//声明一个树的结构体 typedef struct Tree { char data; //存放的数据 struct Tree* left; //指向左孩子原创 2016-11-04 00:02:14 · 1581 阅读 · 0 评论 -
通用寄存器
计算的内置寄存器结构分布,以8086CPU的内部寄存器为例:16位CPU通用寄存器共有8个,AX,BX,CX,DX,SP,BP,SI,DI AH和AL是将一个16位的寄存器分别作为两个独立的寄存器,高8位记作H,低8位记作L。 其中有的有特殊的用途:AX为累加器,CX为计数器,BX,BP为基址寄存器,SI,DI为变址寄存器,BP还可以是基指针,SP为堆栈指针。 32位CPU通用寄存器共也有8个原创 2016-10-31 13:33:02 · 1432 阅读 · 0 评论 -
函数时栈帧变换
运行环境:win10+vs2015栈帧 C语言中,每个栈帧对应着一个未运行完的函数。栈帧中保存了该函数的返回地址和局部变量。(百度百科) 在c程序中每个函数的执行都需要开辟一块空间来存放一些变量、地址等。 也正是因为如此,每次调用函数的时候会比直接写代码花费的时间更过,也是递归比循环运行速度慢的更本原因。 “栈帧”,是一种栈,具有后进先出的一种数据结构,其栈是向上增长。 push 表示 压原创 2016-10-30 23:28:36 · 439 阅读 · 0 评论 -
调用约定
声明:此篇博客整理于百度百科,加上了一些我的理解 运行环境:win10+vs2015 函数调用约定,是指当一个函数被调用时,函数的参数会被传递给被调用的函数和返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递和由谁平衡堆栈的,当然还有返回值。(百度百科) 几种调用约定:__stdcall,__cdecl,__fastcall,__thiscall,__nakedcall,__pas原创 2016-10-30 16:47:36 · 400 阅读 · 0 评论 -
malloc函数实现过程
在C语言中,要进行动态内存的开辟就需要使用到malloc函数,在C++中使用的new关键字的基层也是调用了malloc函数,可见malloc函数的重要性,这个就浅析一下malloc的实现过程。 本文的测试环境是win10+vs2015。首先先看看malloc函数怎么去调用// malloc函数原型 // void *malloc( size_t size );//(MSDN中的定义) type原创 2016-10-27 13:13:55 · 6289 阅读 · 0 评论 -
宏定义中的#和##
调试环境:win10+vs2015在C语言中#define是经常使用的,这里就介绍一下“#”和“##” “#”:表示在宏定义中使用原字符串 “##”:表示连接前后两个字符串 这两个都只能用在#define中使用 举例:#define TEST(a,b) cout<<a<<" "<<#a<<" "<<b<<" "<<#b<<endl int main(){ TEST('c','d');原创 2016-10-27 18:16:45 · 479 阅读 · 0 评论 -
编写常见C语言字符串函数
C语言字符串函数以下是c语言中常见的字符串操作函数的源代码,虽然有些与库函数的函数写法相同,但是这些都是笔者自己想出来然后实现的,希望对其他博友有所帮助。注:函数名带了n的代表是按照一定的字节数操作//求字符串长度 int strlen(const char* str) { const char* start = str; while (*str++); return (st原创 2016-07-30 14:57:18 · 472 阅读 · 0 评论 -
#pragma once和#ifundef的区别
在某些高版本中可以使用 #pragma once,这里区别一下#ifundef和#pragma once #pragma once兼容性不好,不是所有编译器都支持,#ifundef是C/C++的标准,所有编译器都支持 #pragma once将作用与整个文件,#ifundef可以自定义作用范围 #pragma once可以防止同文件引入,但是不能防止同内容文件引入;#ifundef既可以防止同文件一原创 2016-12-06 16:56:44 · 1631 阅读 · 0 评论