![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
c语言
文章平均质量分 64
c语言
高灿子
这个作者很懒,什么都没留下…
展开
-
动态开辟二维数组的两种方案及位体
先来回顾一下动态开辟一位数组的方法:#include<stdio.h>#include<stdlib.h>int main(){ int n = 0; int* ip = nullptr; scanf_s("%d", &n); ip = (int*)malloc(sizeof(int) * n); if (nullptr == ip)exit(1); for (int i = 0; i < n; ++i) { ip[i] = i; } fr原创 2021-05-04 22:40:34 · 448 阅读 · 0 评论 -
位运算、左右移运算
位运算位运算是只适合于整型,并且是对应于二进制进行的一种计算方法,包括位与&、位或|、异或^、取反~。位运算的使用要进行位运算,首先要将数据转化为二进制数。位与运算:当两数同时为1时,结果为1,否则为0。#include<stdio.h>int main(){ char a = 20, b = 12; char c = 0; c = a & b; printf("c=%d\n", c); return 0;}运行结果:位或运算:两数中任意一原创 2021-04-27 21:01:20 · 150 阅读 · 0 评论 -
快速排序
快速排序的思想及代码实现第一种方式:两边同时比较数据int Parition(int* br, int left, int right){ assert(br != nullptr); int i = left, j = right; int sum = br[i]; while (i <= j) { while (i<j && br[j]>sum)--j; if (i < j)br[i] = br[j]; while (i<j原创 2021-04-27 01:25:43 · 113 阅读 · 0 评论 -
类型专题
数据类型整型数据类型对于整型数据而言,它们默认都是有符号的。int main(){ char; //1byte short; //2byte int ; //4byte long int; //4byte long long; //8byte //无符号类型unsigned unsigned char; //1byte unsigned short; //2byte unsigned int ; //4byt原创 2021-04-24 00:24:09 · 382 阅读 · 1 评论 -
函数指针
在给出函数指针的概念之前,先回顾之前学过的指针的内容:int main(){ int a=10,b=20; int *ip=&a; //表示ip指向a的地址,一级指针; int **sp=&ip; //表示sp指向指针ip的地址,二级指针; int ar[10]={ }; ip=ar; //表示ip指针指向数组ar的首元素的地址; int(*par)[10]=&ar;//表示par是一个指向数组ar的指针; int *pbr[10]={}原创 2021-04-19 21:29:05 · 382 阅读 · 1 评论 -
文件
什么是文件?一般指存储在外部介质上数据的集合,这些数据可以是有序的也可以是无序的,例如我们经常用的txt,exe,obj文件,将他们储存到可移动磁盘中,这些文件各有各的作用,我们通常将他们村房子啊磁盘或者可移动盘等介质中。操作系统是以文件为单位对数据进行管理,也就是说,要访问外部数据,必须以文件的文件名查找。文件一般包括三要素:文件路径、文件名、后缀。文件的访问形式:在c语言中\一般是转义字符的其实标志,故在路径中需要用两个’\’表示路径中目录层次的间隔,也可以使用’\’作为路径中的分隔符。#i原创 2021-04-10 13:36:43 · 141 阅读 · 0 评论 -
动态内存分配与柔性数组
1.什么时动态内存分配:一般我们写程序都是在栈区分配空间,如果我们想根据需求想随时存放随时释放数据,堆区可以实现根据需求想系统申请所需大小的空间。2.怎么建立内存的动态分配?内存的动态分配是通过系统提供的函数来实现的,主要有malloc,calloc,free,realloc这四个函数,都需要引用stdlib.h或者malloc.h文件.在malloc,calloc,realloc函数向堆区申请空间之后,处理完数据需要释放空间。(1)用malloc函数开辟动态存储区int main(){ in原创 2021-04-08 01:47:59 · 198 阅读 · 0 评论 -
c语言杨辉三角的实现
杨辉三角的规律:下层两边都是1,其他数都是上层两数之和。下面给出示例:#include<stdio.h>#include <string.h>#define k 10 //定义一个宏k,用来控制输出多少行杨辉三角,这里给出10行int main(){ int ar[20] = {1}; int br[20] = {1,1}; printf("%5d\n", ar[0]); printf("%5d%5d\n", br[0], br[1]); for (in原创 2021-04-07 21:23:13 · 137 阅读 · 0 评论 -
数组
数组:<类型>数组名[<元素数量>]元素数量必须是整型常量表达式数组的组成:类型+大小,存储空间是连续的(数组看不见的属性),从低地址到高地址,数组的类型是由元素的类型和数量所决定的。数组未进行初始化时,默认元素为0,给定数组int ar[]={};花括号中为空时,数组中的元素被初始化为0。sizeof(ar)/sizeof(ar[0])表示计算数组ar中的元素个数数组名和sizeof一起用时,表示整个数组的字节数,其余情况都表示数组首元素数组之间不能作为整体直接赋值(因为原创 2021-04-07 00:32:29 · 566 阅读 · 0 评论 -
指针
所占字节数:32位——4字节 64位——8字节指针由两个值构成:自身的值+指向的值在定义指针变量时,*是和变量结合的Int a=10 Ip=&a ip=a ip存放谁的地址ip就是谁指针包括:野指针(不初始化的指针),空指针(将指针初始化为空的指针int *s=NULL),失效指针ip=&a和int *ip=&a等价指针只存放首地址,地址自上而下是从低到高,高位数存放高地址,地位数存放低地址,当取某个变量的首地址时,实际取的是低地址。类型相同原创 2021-04-07 00:27:44 · 238 阅读 · 0 评论 -
分支语句、循环语句、函数初步
函数的特点:根本特点:功能单一其他特点:小模块,一般不超过50行,超过则很难把握功能函数的构成:函数的类型+函数名+参数函数声明时,形参可以省略,但类型不可省略函数和声明的区别:函数有大括号函数和变量的区别:函数任何一个形参都对应一个类型,变量不是函数只有在调用的时候才分配空间自定义的函数构成:返回类型+函数名+形参列表+函数体1.在函数中计算的值会存放进临时空间,在主函数中拷贝最后的结果,临时值只能拷贝,不能修改。2.将变量名赋给形参的时候是一个压栈的过程。在函数中依次定义的变量在原创 2021-04-03 00:30:07 · 117 阅读 · 0 评论 -
结构体类型、联合体类型
1.定义:结构体赋值的方式:struct Student s1={“1001”,”hyy”,”m”,23};赋值时,必须加上struct,还应注意定义结构体成员的顺序,赋值时顺序不能打乱。当结构体成员的类型为指针类型时,储存的方式和其他类型有所不同,栈帧中为指针开辟空间,指针所指向的字符串存在.date区,也是只读区,由指针指向而已。结构体之间可以嵌套:例如学生由姓名、性别、生日构成,生日由年、月、日构成。其中嵌套的结构体可以用花括号括起来,也可以不用。结构体访问成员时:结构体变量.成员名 的形原创 2021-04-03 00:01:48 · 845 阅读 · 0 评论 -
连接函数的用法
连接函数的用法:一般给出头文件<string.h>直接调用即可。下面给出示例:stract为连接函数的具体写法。#include<stdio.h>int stract(char *p1,char *p2){ int i = 0, j , a , b ; a = sizeof(p1); b = sizeof(p2); for(i = a + 1 , j = 0 ; i < a + b , j < b ; i++ , j++) { p1[i]=p2[j原创 2021-03-30 11:35:00 · 1326 阅读 · 0 评论 -
复制函数的用法
复制函数的用法,以下给出示例:strcpy为具体函数的写法。一般情况下,只需给出头文件,在主函数中调用即可。#include<stdio.h>void strcpy(char *p1,const char*p2){ if(*p2==NULL) return ; while(*p2 ='\0') { *p1 = *p2; p1++; p2++; }int main(){ char ar[]={"abcdefg"}; char br[]={0}; strcpy(原创 2021-03-30 00:39:04 · 776 阅读 · 0 评论