![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言基础
William 壹
这个作者很懒,什么都没留下…
展开
-
逻辑运算(按位取反)
(按位取反)运算的理解:按照我平时的理解,当我使用按位取反运算的时候,计算机会将操作数所对应的二进制表达式的每一个位进行取反计算,取反后所得到的值就是按位取反的运算结果(这点没问题)例如,假如我的计算机是32位的,我接下来要计算~5的值,计算过程如下:5 的二进制表达式为:0000 0000 0000 0000 0000 0000 0000 0101执行运算,即5后: 1111 1111 ...转载 2019-07-28 19:08:17 · 5775 阅读 · 0 评论 -
栈
#include <stdio.h>#include <stdlib.h>//queue 先进先出 FIFO//Stack 先进后出 FILOtypedef int Boo;#define TRUE 1;#define False 0;typedef struct Node{ int id; struct Node *p;}stack;v...原创 2019-08-19 21:45:40 · 56 阅读 · 0 评论 -
free出错
这是今天碰到的一个例子,使用malloc()申请了一片内存,却在free的时候意外发现释放出错。我百思不得其解,因为同样申请内存的另一个变量释放内存的时候一点问题都没有,而且这两者操作基本相同,申请,使用,再释放。经过调试,发现程序一直没错,直到free的时候,程序直接终止。后来经过查free()的实现原理的时候,我找到了问题所在。free的原理是,申请的内存片段之前存放着相应的信息,这个信息是关...转载 2019-08-24 15:13:22 · 289 阅读 · 0 评论 -
枚举
枚举是定义常量的一直方法 enum +变量名 { 枚举常量 }比如说在上面的基础上声明一个枚举变量 State:对它先后进行两次赋值之后,State 的值就是最后赋值的 TRUE,不会说可能是 FALSE。其实枚举变量和普通的变量没多大区别,只是说程序员在对它进行赋值的时候会受到一些限制:这个变量只能是枚举的那些值#include <stdio.h>enum AA{...原创 2019-08-21 18:23:26 · 74 阅读 · 0 评论 -
联合体
char s[9]; int n double d对于sizeof(u1)=16。由于u1中s占9字节。n占4字节。d占8字节,因此至少须要9字节。其包括的基本数据类型为char。int,double分别占1。4,8字节,为了使u1所占空间的大小能被1,4,8整除。则需填充字节以到16。因此sizeof(u1)=16.对于sizeof(u2)=8。由于u2中...原创 2019-08-21 19:01:18 · 161 阅读 · 0 评论 -
递归
几个整数中公有的约数,叫做这几个数的公约数;其中最大的一个,叫做这几个数的最大公约数。例如:12、16的公约数有1、2、4,其中最大的一个是4,4是12与16的最大公约数,一般记为(12,16)=4。欧几里德算法又称辗转相除法,是指用于计算两个正整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。1.辗转相除法求最大公约数#i...原创 2019-08-21 19:19:20 · 134 阅读 · 0 评论 -
文件
fopen_s:errno_t fopen_s(FILE** pFile,const char *filename,const char *mode);“r”打开以进行读取。如果该文件不存在,或无法找到,fopen_s调用失败。“w”打开一个空文件以进行写入。如果该文件存在,其内容将被销毁。“a”打开以进行写入 (追加) 而不将新数据写入文件之前删除的 EOF 标记文件的末尾...原创 2019-08-22 18:05:07 · 96 阅读 · 0 评论 -
文本文件复制
描述C 库函数 int getc(FILE *stream) 从指定的流 stream 获取下一个字符(一个无符号字符),并把位置标识符往前移动。声明下面是 getc() 函数的声明。int getc(FILE *stream)参数stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了要在上面执行操作的流。返回值该函数以无符号 char 强制转换为 int 的形...原创 2019-08-22 18:10:01 · 782 阅读 · 0 评论 -
二进制文件复制
二进制复制时,我们可以为了使其大小一致。我们应该利用fread的返回值,来传递大小,这是最重要的。#include <stdio.h>int main(){ FILE *file1 = NULL; FILE *file2 = NULL; char buf[1024] = {0}; size_t size; fopen_s(&file1,"C:\\Users\\...原创 2019-08-22 18:25:58 · 476 阅读 · 0 评论