![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 80
咔Boom !!!
一个在校学生的笔记
展开
-
C语言函数指针,数组指针,数组引用用法
#include<iostream>#include<math.h>#include<ctime>#include<iomanip>#include<stdlib.h>#include<limits.h>//各种类型的范围库函数原创 2019-03-02 18:45:31 · 507 阅读 · 0 评论 -
c语言文件操作详细
文件操作有多种形式首先解释文本文件操作当操作的文件时文本文件时,会将数据转换为ascii字符的值存放到文件中,在使用时在转换会原来的值。这里和printf函数的执行过程很相似所以在讲解文件之前先讲解两个相关函数1.//int printf(const char *_Format,…) 参数中的…是可变参比如int a=10;printf(“a=%d\n”,a);在执行时print...原创 2019-03-02 21:22:46 · 362 阅读 · 0 评论 -
C语言—遍历查找并删除文件包括子文件
准备阶段在完成这个遍历删除任务之前,我们要先完成一下准备阶段的任务。最重要的就是**_**finddata_t结构体的使用和remove()以及rmdir()函数的使用。首先remove()函数是用来删除文件的头文件:#include <stdio.h>remove()函数用于删除指定的文件,其原型如下:int remove(char * filename);成功则返回0,失...原创 2019-04-03 21:35:55 · 1438 阅读 · 0 评论 -
bool型
首先bool类型只有一个字节在c c++ java中,真值有无数种,而假只有0所以bool a = -3;bool b = 20;bool c = 0;上面这三种情况的真值分别是 真 真 假所以只有当变量的值为0时才代表其为假int a = -3; int b = 20; int c = 0; c = a < b; printf("%d\n", c);这个...原创 2019-03-23 14:25:42 · 529 阅读 · 0 评论 -
sizeof 的一些解释
首先要明白的时 sizeof是一个关键字,而不是一个函数作为关键字,sizeof和int,double等关键字一样;所以作为关键字,int i=1;sizeof(int)=4;sizeof(i)=4;sizeof i=4上面的四个语句的答案都是四,这里sizeof i的答案是4,而它再使用时并没有加上();正好说明了它不是一个甘函数,而实一个关键字但是我们不能这么使用它,size...原创 2019-03-23 16:26:39 · 405 阅读 · 0 评论 -
一个计算对应日期的天数的函数,以及清空缓存函数解决scanf使用出现错误
#include<stdio.h>#include <stdlib.h>int allmonth[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };int is_leapyear(int year){ if (year % 400 == 0 || (year % 4 == 0 && ...原创 2019-03-23 17:08:56 · 567 阅读 · 0 评论 -
关系运算符
int a=10,b=20,c=0;c=a&&b;c=>在上的程序中得到的结果是1,是一个bool型的结果;它的运算规则是:0 0 =>0;0 1=>0;1 0=>0;1 1=>1它的规则是当第一个的值是0时,他就不判断第二个的值,因为通过第一个值就可以判断它为假了。所以同理| | 运算的方式和&&运算相反...原创 2019-03-23 19:28:14 · 168 阅读 · 0 评论 -
C语言-浅谈程序内存空间的分区及变量与函数的堆栈空间分配,变量初始化未赋值情况
.cpp/.c (原文件)经过预编译 但是代码中以#开头的代码,都是在预编译完成的,而且不进行类型检查,只进行替换.i经过编译 进行类型和语法的检查.o/.obj经过链接.exe程序运行时分为4个区块来存放数据分别为.text 代码区.data 数据区.heap 堆区.stack 栈区我们在程序中使用的变量,函数都是需要内存空间的,这个时候栈区空间,为这些函数...原创 2019-03-27 20:39:45 · 684 阅读 · 0 评论 -
C语言循环语句和条件语句
循环大体分为三种1.while循环2. do while循环3.for循环首先解释while循环,先解释下while的结构while(x ){…}首先要知道循环的条件是真,在C语言中,真的表示是除0意外的所有值都代表为真比如bool型的true或者1,2,3,-1,-2,-3等。同时需要注意的是的while()中的x不仅仅代表一个数的值,它也可以是一个表达式比如while(tr...原创 2019-04-10 21:07:34 · 1272 阅读 · 0 评论 -
C语言—static静态关键字
static解释及使用首先static是一个关键字使用static初始化的变量存放于数据区对于局部变量void fun(){ static int x=0; static int x=val;}上面的程序是无法编译通过的,错误是变量重定义,因为静态变量只初始化一次。需要重点了解的是所谓的初始化并不仅仅指的是赋值,更重要的是为变量开辟空间。而对于静态变量来说,他的初始化只进行一次...原创 2019-04-20 17:43:27 · 264 阅读 · 0 评论 -
C语言作业—字符串转整型str_to_int()
#include<iostream>#include<stdio.h>#include<math.h>#include<string>#include<limits.h>#include <ctype.h>#include<stdlib.h>#include<assert.h>using...原创 2019-04-20 19:52:57 · 2767 阅读 · 0 评论 -
c语言二级指针
首先要知道指针都是四字节的下面举一个例子char a3, a2, a1, a0; char *p3, *p2, *p1, *p0; char **s; //假设 a3, a2, a1, a0和*p3, *p2, *p1, *p0存放的内存空间都是连续的,并且s指向p //求s+1 =4字节 //*s+1 =4字节 //**s+1 =其本身的数加一...原创 2019-05-08 19:07:59 · 337 阅读 · 0 评论 -
小端存放粗解
小端存放首先小端存放只是内存存放的一种方式,同样的还有大端存放粗解:小端存放的意思是将高位数存放在高地址,低位数存放在低地址我们知道数据在内存中都是以ascii码的形式存放的,然后我们通过编译器(vs)观察内存时可以看到,他会以16进制数显示出来,以int型为例,刚好每两位数表示一个字节例如:int y=0x 12 34 56 78内存中:0x0012ff1c 780x0012ff...原创 2019-05-19 16:13:56 · 274 阅读 · 0 评论 -
c语言二维数组
二维数组在内存中是由几个一维数组组成的下面这个例题中的三个数组就相当于int ar[3][4];举一个例题要求数组指针向下移动,在从数组里面向下移动,输出ar2中的第三个在这要说明的数组的地址和数组的首元素地址的值是一样的,但是意义不同在数组的地址前加*号就变为了数组的首元素地址如&ar0是数组的地址,*&ar就变为了数组首元素的地址int ar0[4]; int ...原创 2019-05-11 14:15:33 · 3320 阅读 · 0 评论 -
冒泡排序,插入排序,选择排序,堆排序代码
void InsertSort(SeqList &amp;amp;amp;amp;amp;seq){ int n = GetSize(seq); for(int i = 1;i&amp;amp;amp;amp;lt;n;++i) { if(seq.data[i] &amp;amp;amp;amp;lt; seq.data[i-1]) { ElemType tmp = seq.data[i]; int j = i -原创 2019-01-17 09:41:50 · 119 阅读 · 0 评论 -
C语言—递归二分法查找
分治策略:分解的是规模,比如数10亿硬币,分成4万个人区完成,这样,问题不会改变,改变的是问题的规模下面是不用递归求阶乘的方式int fun(int n){ int sum=1; for(int i=1;i&lt;=n;i++) { sum=sum*(sum+1); }}void main{int n,sum;cin&gt;&gt;n;...原创 2019-01-18 11:50:43 · 1632 阅读 · 0 评论 -
C语言数据结构-顺序表
总提1.集合结构2.线性结构特点:除了头尾,中间的每一个节点都存在一个前区和后继且没有空存在。3.树形结构特点:一对多,多个后继一个前区4.图特点:多对多数据结构将现实的结构进行了数据结构化,基本就只有这四种关系我们画在图纸上的结构称之为逻辑结构,将结构存放于内存中被称之为物理结构。当逻辑结构和物理结构接近时更容易代码实现,也更容易理解。线性表...原创 2018-12-25 21:45:18 · 421 阅读 · 0 评论 -
C语言数组字符串的许多例题
**const的应用**例如:void main(){ int a = 10, b = 20; int *p1 = &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;a; *p1 = 100; p1 = &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;b; const int *p2 = &amp;amp;a原创 2018-12-21 19:10:37 · 1385 阅读 · 0 评论 -
C语言理论知识-可见性,生存期
各种基本类型的字节数void main(){ cout &amp;lt;&amp;lt; sizeof(char) &amp;lt;&amp;lt; endl; cout &amp;lt;&amp;lt; sizeof(short) &amp;lt;&amp;lt; endl; cout &amp;lt;&amp;lt; size原创 2018-12-22 19:02:02 · 404 阅读 · 0 评论 -
C语言字符串和数组
字符串和数组char ch1[] = “yangheping”;char ch2[] = { “yangheping” };两个字符串是放在栈区的,(ch1 == ch2) &amp;amp;amp;amp;amp;amp;amp;lt;&amp;amp;amp;amp;amp;amp;amp;lt; endl; // 0是因为ch1和ch2都指向两个字符串的首元素地址,然而在栈区中两个字符串的变量名字不同,且ch1[]和ch2[]让系统在内存中为其开辟原创 2018-12-22 19:03:22 · 314 阅读 · 0 评论 -
void * 无类型指针(泛型指针)
void * 无类型指针(泛型指针)只要你是指针就可以赋值给我例如void *vp;void main(){ char ch; int n; double x; vp = &amp;ch; vp = &amp;n; vp = *x;}但是无类型指针不能做++处理,如vp++,也不能做*vp使用,因为无类型,所以无法在内存中解释字节大小。但是可以做sizeof(vp);//...原创 2018-12-22 19:04:34 · 966 阅读 · 0 评论 -
C语言—结构体/联合体/枚举
结构体我们不能定义结构体,我们所做的是设计结构体。接下来的代码时结构体的基本操作struct student{ char id[10]; char name[10]; char sex[6]; int age;};student fun(){ student s = { "20180101", "yhping", "man", 28 }; retur原创 2018-12-22 19:08:12 · 628 阅读 · 0 评论 -
关于宏定义的知识,以及一些应用
关于宏定义的知识.cpp/.c经过预编译.i经过编译.o/.obj经过链接.exe#define 的宏定义时在预编译是确定的,它不开辟空间,没有类型,所以不进行类型检查,宏定义的后面是没有分号的。应为没有类型所以如果在后面加了一个分号那么,在使用时需要加上分号,但是一般不能加上分号#define pi 10;s=pi;*r*r如果给了分号那么再调用在这种情况时就会出现错误。...原创 2018-12-22 19:09:21 · 279 阅读 · 0 评论 -
const的应用
const的应用例如:void main(){ int a = 10, b = 20; int *p1 = &amp;a; *p1 = 100; p1 = &amp;b; const int *p2 = &amp;a;//*p不可改变,p可以改变 int const *p3 = &amp;a; //*p不可改变, p可以改变 int * const p4 = &amp;a;//...原创 2018-12-22 19:10:41 · 183 阅读 · 0 评论 -
&引用 和 assert断言 解释
引用目前为了便于理解,将引用当成变量的别名理解,实际时在底层处理时被翻译成了指针进行操作,但是目前暂且不深究void swap(int &amp;amp;amp;amp;amp;amp;amp;a, int &amp;amp;amp;amp;amp;amp;amp;b)//之所以要加&amp;amp;amp;amp;amp;amp;amp;符号是因为,如果没有添加的话相当于把两个形参在另一个栈帧里进行了交换,但是对main函数的栈帧中的数据没有影响。原创 2018-12-22 20:24:11 · 287 阅读 · 0 评论 -
C语言数据结构一元多项式
//定义多项式最大项数#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;malloc.h&amp;gt;#define MAX 20//定义存放多项式的数组类型typedef struct{ float coef; int exp;}PolyArray[MAX];//定义单链表结点类型typedef struct pnode{ float coef;原创 2018-12-22 20:34:57 · 1524 阅读 · 0 评论 -
C语言malloc函数解释和calloc函数,free()
malloc函数内存分为堆区(.heap),栈区(.stack),数据区(.data),代码区(.code)。 全局变量和静态变量存放在静态区,局部变量存在在栈区,动态申请的变量(即new,malloc函数申请的变量)存放在堆区。根据之前的理解,全局变量和字符串常量存放于.data数据区中。而局部变量存放于栈区.stackmalloc用于开辟内存空间,free用于释放空间,如果申请了内存空间...原创 2018-12-28 22:07:08 · 1664 阅读 · 1 评论 -
C语言赋值时产生的临时量,类型比较时转换,和怎么观察预编译后的程序结果
C语言的一些零碎基础知识首先在给变量赋值的时候要注意格式int a=10//十进制int a=010//八进制int a=0x10//十六进制下面是关于程序生成的过程:首先.c和.cpp文件被称为ASCII字符的文本文件,然后经过预编译形成.i文件(在预编译时主要的功能是:宏定义、文件包含、条件编译。),然后经过编译形成.o/.obj文件,随后经过链接可以形成.exe可执行文件。这里...原创 2018-12-23 16:26:26 · 376 阅读 · 0 评论 -
C语言char类型及其类型转换的变化
char类型首先我们要知道char类型为一个字节。而且要知道他在计算机中的储存方式。一个字节8个bite,int类型32bite,0x00 00 00 01刚好没量为数为一个字节,这正是内存的储存方式例如char a=5;//a=0000 0101 正数的源码补码反码相同char b=-5;// b=1000 0101(源码)-》1111 1011(补码)int x=(int)a...原创 2018-12-23 17:07:46 · 11062 阅读 · 0 评论 -
realloc函数最详细解释
realloc函数语法原型:extern void *realloc(void mem_address, unsigned int newsize);指针名=(数据类型)realloc(要改变内存大小的指针名,新的大小)。新的大小可大可小(如果新的大小大于原内存大小,则新分配部分不会被初始化;如果新的大小小于原内存大小,可能会导致数据丢失 [1-2] )头文件#include &amp;amp;amp;amp;amp;amp;amp;amp;lt...原创 2018-12-28 22:08:19 · 9516 阅读 · 1 评论 -
C语言指针,及指针识别能力
指针的基本意义原创 2018-12-23 17:33:12 · 336 阅读 · 0 评论 -
scanf(),getch(),getchar(),gets(),printf()关于缓冲区的理解
这三个函数是常用的输入输出函数,而且他们都与键盘缓冲区密切相关。为了了解他们之间的关系,那么首先要知道他们各自的作用 scanf()函数 printf()函数 getch()函数getchar()函数C语言标准输入输出缓冲区标准输入stdin标准输出stdonscanf()函数控制字符就不一一谈论了。scanf()函数根据由format(格式)指定的格式从stdin(标准输入...原创 2019-05-11 18:37:42 · 714 阅读 · 0 评论