c零基础学习
大连一枝花❀
这个作者很懒,什么都没留下…
展开
-
C Linux贪吃蛇
ncurse :为什么要用ncurse:因为这个b按键响应很nb是什么:早已淡出舞台 用户体验感很差,这里主要用于使用控制蛇 不学习!#include<curses.h>int main(){ initscr();printw(“this is a curse window.\n”);getch();endwin();return 0;}编译时 gcc 。。。lcurses 。。。...原创 2021-04-03 16:59:23 · 113 阅读 · 0 评论 -
链表 头插法
#include<stdio.h>#include<stdlib.h>struct Test{int data;struct Test *next;};void printLink(struct Test *head){while(head != NULL){printf("%d ",head->data);head = head->next;}}struct Test *inPutData(struct Test *head){str原创 2021-04-03 10:26:47 · 174 阅读 · 1 评论 -
C 语言 WeMos D1智能垃圾桶上
和STM32模块开发类似,集成度高STM32方案也更经济便宜板载 5V 1A开关电源(最高输入24V)ARDUINO开发环境Wemos IO口 玩蜂鸣器**VCC:**供电电压**GND:**GND是电线接地端的简写。代表地线或0线。这个地并不是真正意义上的地,是出于应用而假设的一个地,对于电源来说,它就是一个电源的负极Wemos同Arduino上电后不断执行loop函数中的代码,我们核心控制代码写入loopsetup函数只调用一次,一般用于硬件相关的初始化,比如IO口,串口,wifi等原创 2021-03-31 18:44:03 · 189 阅读 · 0 评论 -
Linux虚拟机网络配置
Bridged(桥接模式)1.每台都能上网2.互相通信3.不足。每台虚拟机都要独立配置DNS(用来上网的) 比较消耗IP地址NAT(网络地址转换模式)1.每台都能上网 DNS是统一的2.ip地址是假的 单向Host-Only(仅主机模式)1.不能访外网我们用的最多的是桥接模式ifconft 查看ip相同网段sudo ifconfig eth0 192.168.1.88将ip地址配置成192.168.1.88ctrl + c 返回...原创 2021-03-31 14:49:15 · 113 阅读 · 0 评论 -
Linux和 windows 之间传输
Linux和windows文件共享1.直接拖拽2.共享文件夹cd /mnt/mgfs/sharefromwindowscp空格/mnt/mgfs/sharefromwindows/gpsdataparse.c空格. :拷贝到当前路径 ,最后一个点是当前路径的意思以上两种方式 需要安装VMware Tool;3.ftpfirezilla工具 totalcommand cuteftp在获取完 虚拟机ip地址后 ping空格 虚拟机的ip地址来看是否能相连...原创 2021-03-31 09:11:18 · 154 阅读 · 0 评论 -
Linux 常用初级指令介绍和使用
常用指令ls:列出当前文件夹下有哪些文件ls -a :把所有文件夹列出来pwd:显示当前在哪个文件夹下面mkdir zhazhaxing :新建文件夹 名字是zhazhaxingcd zhazhaxing:进入文件夹 zhazhaixingcd … :退回上层文件夹 cd空格点点./ firstProgram : 运行firstProgramtab键: 自动补全 文件名太长,一般敲前面几个字符再按tab就会补全mv *.c zhazhaxing :1.将所有文件移动剪切到zhazhax原创 2021-03-31 08:21:54 · 272 阅读 · 2 评论 -
C语言 ubuntu
xrandr 调分辨率ls 列出当前文件夹下有哪些文件VI的使用模式 :命令行模式 默认此模式 从输入模式回到命令行模式 按esc输入模式 按 i 进入 看到insert就能编辑代码 esc按完insert消失退出vi,保存代码 :命令行模式下按:(冒号) wq w保存 q退出gcc a.c -o aa.c是你要编译的c文件的名字,a是生成的程序名字运行 ./程序名 ./a...原创 2021-03-30 15:20:42 · 104 阅读 · 0 评论 -
C语言 typdef关键字
作用是作为一种数据类型定义一个新名字这里的数据类型包括内部数据类型(int,char等)和自定义的函数struct等。和struct来陪匹配为了代码编写简洁和普通类型匹配,通过名字来获取一些信息#include <stdio.h>#include <stdlib.h>typedef unsigned char u_int8; //(0-255) 无符号的整型8位typedef unsigned short int u_int16; // 无符号的整型16位typ原创 2021-03-30 09:19:13 · 237 阅读 · 0 评论 -
C语言 结构体大小如何计算 面试宝典
一、结构体成员的偏移量必须是成员大小的整数倍(0被认为任何整数的整数倍)二、结构体大小必须是所有成员大小(数组除外 ,结构体除外)的整数倍对齐方式浪费空间, 确实。。可是按照计算机的访问规则,这种对齐方式提升了效率...原创 2021-03-30 08:54:45 · 146 阅读 · 0 评论 -
C语言 结构体函数指针玩转学生成绩
#include <stdio.h>#include <stdlib.h>struct Student{char *name;int score;};struct Student *xinXi(int n){int i;struct Student *p = (struct Student )malloc(nsizeof(struct Student));for(i=0;i<n;i++){printf(“请输入第%d个学生的名字\n”,i+1);p-原创 2021-03-29 10:51:50 · 611 阅读 · 0 评论 -
C语言 结构体指针
#include<stdio.h>#include<string.h>struct Student{char name[128];int score;};int main(){struct Student *p; //如果用结构体指针,就不能用点运算符访问结构体中的变量要用->p = (struct Student *)malloc(sizeof(struct Student));p->score = 98;strcpy(p->name,“原创 2021-03-28 21:29:30 · 151 阅读 · 0 评论 -
C语言 结构体常犯致命错误
#include<stdio.h>#include<string.h>struct Datas{*char p; //注意这里 野指针造成段错误};struct Test{char p[128];};int main(){struct Datas d;*d.p = (char )malloc(128);memset(d.p,’\0’,128);strcpy(d.p,“感觉自己萌萌哒”);printf("%s\n",d.p);system("p原创 2021-03-28 20:25:50 · 339 阅读 · 0 评论 -
C语言 结构体定义
为什么要用结构体类型不同的一组数集合数据更多、类型更丰富、信息量更大定义结构体关键字: structstruct Student //注意没括号{int score;char name;void (introduce)(char *pname);}; //一定要注意分号!!!!!类型 变量名 初始值int a = 10struct Student原创 2021-03-28 19:55:25 · 144 阅读 · 0 评论 -
C语言 字符串几种常用的API
头文件#include<string.h>char *pstrpstr = (char *)malloc(128)野指针,造成非法内存访问,会出现段错误,cmd窗口闪退gets(pstr);puts(pstr);memset(pstr,’\0’,128);//1.初始化的对象 2.初始化的字符3.初始化多大strcpy 拷贝char destSrc[128] = {’\0’};char *strSrc = “我真帅!”;strcpy(strDest,strSrc);m原创 2021-03-28 18:11:50 · 448 阅读 · 0 评论 -
C语言计算字符串中字符的个数
不能用sizeof来计算字符串中有效字符个数!!!!!!!!!!应该用strlen,他在计算字符串大小的时候,遇到’\0‘后,就结束计数!!!原创 2021-03-27 15:31:46 · 2107 阅读 · 0 评论 -
C语言 字符串存储方式 结束标志
#include <stdio.h>#include <stdlib.h>int main(){char a[] = “abc”;printf(“a数组的大小是%d\n”,sizeof(a));printf(“数组元素的大小是%d\n”,sizeof(a[0]));printf(“a数组的个数是%d\n”,sizeof(a)/sizeof(a[0]));//结果是4!!,多了一个字符, '\0’代表字符串的结束标志system(“pause”);return 0;原创 2021-03-27 15:22:48 · 766 阅读 · 0 评论 -
C语言字符串定义
char str[6] = {‘a’,‘b’,‘c’,‘d’,‘e’,‘f’}char str2[6] = “abcdef”char str3[]=“sfsvsdfsdfsdgdf”//数组元素个数不写,会根据真是大小来默认分配这三种定义方法 都不太好数组名就是地址(大多数情况下)//指针方式,如果操作不恰当,内存非法,易造成段错误char *pstr = “hellow world”#include <stdio.h>#include <stdlib.h>int原创 2021-03-27 15:07:24 · 502 阅读 · 0 评论 -
C语言如何避免内存泄漏
*int p = malloc(1024);申请的空间,程序不会主动释放,Linux中的话,程序结束后,系统会回收这个空间避免:1.注意:循环中有没有一直申请2。即时合理的释放 free§ ; p = NULL;原创 2021-03-27 14:39:22 · 421 阅读 · 0 评论 -
C语言 无类型malloc函数
void*(size_t,size)void* :返回值无类型指针size_t :范围-2十六次方—2的十六次方#include <stdio.h>#include <stdlib.h>int main(){int n;scanf("%d",&n);int *parray = (int )malloc(nsizeof(int));int i;for(i=0;i<n;i++){printf(“请输入第%d个学生的成绩:\n”,i+1);scan原创 2021-03-26 16:32:52 · 243 阅读 · 0 评论 -
C语言 函数指针
一个指针变量存放的是函数地址如何知道是指针 *如何知道是函数()函数指针是专用的,格式要求很强(参数类型,个数返回值),就像数组指针一样如何给函数赋值void (*p2)();p2 = printWelcome;//函数就是地址,就像数组一样,数组名就是地址如何通过函数指针调用函数p2(); //直接通过指针名字+()(*p2)() ; //取内容 (**指针名字)()例子:#include <stdio.h>#include <stdlib.h&g原创 2021-03-26 16:03:01 · 153 阅读 · 0 评论 -
C语言 数组指针
**数组指针:**一个指针#include <stdio.h>#include <stdlib.h>int main(){int a[3] = {1,2,3};*int (p)[3]; //数组的指针,强调的是类型,数组的个数,偏移值是偏移了整个数组的大小p = a;int *p2;p2 = a;printf(“数组的地址是%p\n”,a);printf(“p数组的地址是%p\n”,p);printf(“p2数组的地址是%p\n”,p2);printf("p原创 2021-03-26 15:46:30 · 109 阅读 · 0 评论 -
C语言 指针数组
指针数组:指针的数组#include <stdio.h>#include <stdlib.h>int main(){int a = 2;int b = 3;int c = 4;//3个毫无关系的整型变量int *p[3];//这么定义指针数组int *parray[3];//多个指针,叫做指针数组,数组中的每一项都是指针变量 //指针变量是存放地址的变量parray[0] = &a;parray[1] = &b;原创 2021-03-26 15:32:49 · 117 阅读 · 0 评论 -
C语言 为什么要用指针
int p = (int)0x0060ff00;让p指向的的地址为。。。。。。volatile int p = (volatile int)0x0060ff00;//类型修饰符 作用是每次读取都从内存中读取 牺牲效率提升正确度总结:p++和(p++)没有区别,查阅资料得到正确的理解,应该理解为,由于后++优先级高于*,应该先p++,后取值,但因为是后++,所以先执行*p,然后等赋值完成以后,p再++。例子:#include <stdio.h>#include <stdli原创 2021-03-26 15:15:16 · 149 阅读 · 0 评论 -
C语言 指针分类型 指针与数组
int *pchar *p2int *parray;parray = &array[0];数组名=地址例子#include <stdio.h>#include <stdlib.h>int main(){int i;int array[3] = {9,5,8};int *p;p = array;for(i=0;i<3;i++){ printf("第%d个元素是%d\n",i+1,*p); p++;} system("pause");原创 2021-03-26 14:03:11 · 96 阅读 · 0 评论 -
C语言 指针变量的引入
int * p 指针变量,存放的是地址p = &a; 给指针变量赋值*p = &a 这么写是狗,错误的!!!int *p2 = &a; 定义并初始化一个指针变量*只有在定义一个指针变量的时候,才是指针的标识符,其他情况,都是一个运算符...原创 2021-03-26 13:05:01 · 156 阅读 · 0 评论 -
C语言 指针的引入
变量访问方式有两种1.变量名2.地址取地址符号&取内容符号*指针=地址原创 2021-03-26 11:16:31 · 173 阅读 · 0 评论 -
C语言数组函数的结合
数组和函数结合,数组名当作实际参数arrayPrint(array)purchar()输出一个字符 getchar()获取一个字符如何计算数组中元素的个数数组的总大小/一个类型的大小int a[3]char b[3]两个数组有什么不同一个char型占用空间一个字符一个整型数占用空间四个字节printf(“a数组的大小是:%d”,sizeof(a))printf(“a数组有%d个元素”,sizeof(a)/sizeof(a[0]))!!!形式参数中,虽然写的是一个数组的样子,中括号中原创 2021-03-26 10:26:11 · 521 阅读 · 0 评论 -
C语言 数组引入 及数组遍历找最大值最小值平均值
**为什么需要数组:**只要大量数据,不关系数据的名称时int array[100]; 没有初始化的数组 仅仅申请了一段100个整型数类型的空间int array[3] = {1,2,3}; 有初始化的数组,完整初始化,申请三个空间并赋值1.2.3int array[100] = {1,2,3}; 有初始化,不完整初始化最好使用时初始化数组通过下标来访问外国人喜欢从0开始计算,万事从0开始,中国人喜欢从1开始计数array[0] array[1] array[2]数组中的[] 只原创 2021-03-26 09:46:22 · 1303 阅读 · 0 评论 -
C语言 基础版计算器加减乘除
#include<stdio.h>void tips(){printf(“\n");printf("计算器\n");printf(“请输入一种算法\n”);printf("\n");printf("by:兴\n");printf("**********\n”);}int add(data1,data2){int z;z = data1+data2;return z;}int Jian(data1,data2){int z;z = data1-data2;retu原创 2021-03-24 20:29:36 · 2631 阅读 · 0 评论 -
C语言有参数有返回值的函数
不同类型数据运算时比如两个整数相除,必须将除数,必须将除数或者被除数强制转换成小数,否则小数点后面的数据会被忽略#include <stdio.h>#include <stdlib.h>float chuchu(int a,int b){float z;z = (float)a/b;return z;}int main(){while(1){int data1;int data2;float chuFa;printf(“请输入第一个数据\n”);sc原创 2021-03-24 19:41:28 · 934 阅读 · 0 评论 -
C语言函数无返回值 参数
void的两种说法:1.void代表无返回值,不需要return2.void代表返回值的类型是无类型,return要写但后面不加变量形式参数,意思有点类似变量定义,写法类似变量的定义如果调用的函数带有参数,必须传参何时申请了该空间:当函数被调用时,才申请了该内存空间,才有了这个变量,同时这个空间内的数据被赋值成实际参数的值,函数调用把实际参数的值拷贝一份给形式参数。何时释放了该空间:函数执行结束后,该空间由内存管理单元自动回收(释放)调用的时候,传递的参数叫做实际参数,对格式没有要求,对数原创 2021-03-24 16:31:37 · 8676 阅读 · 0 评论 -
C语言函数概述
函数:什么是函数:函数是一个功能模块,他把实现某个功能的代码块包含起来,并起一个函数名,共别人调用,如printf,system。是程序运行当中包装起来的一个模块。如何定义一个函数:返回值形式参数函数名函数体 代码块int prepare(){}如何调用一个函数:函数名(实际参数)函数名()为什么要函数调用1.代码很好看2.容易定位问题3.复用性强4.分工合作操作系统从main 开始执行...原创 2021-03-24 10:20:14 · 120 阅读 · 0 评论 -
C语言 请写出一个死循环 用fot
for( ; ; ){}无起始条件 无终止条件原创 2021-03-23 16:32:16 · 221 阅读 · 0 评论 -
C语言for循环
for循环for(i=0;i < 3;i++){}意思是for(循环初始条件;循环终止条件;条件变化) //强调分号!!!原创 2021-03-23 16:30:13 · 434 阅读 · 0 评论 -
C语言循环控制语句while do while
如何让代码重复执行第一种循环 whileint i;while(1){i++;之间为循环的程序if(i==10){break;}}当条件为真 1 会一直循环下去当条件为假 0 不会循环原创 2021-03-23 16:20:32 · 300 阅读 · 0 评论 -
C语言 switch case 多分支选择 取模运算
#include<stdio.h>int main(){int data;printf("please input a score\n");scanf("%d",&data);if(data == 100){ printf("牛逼啊 满分\n");}else{switch(data/10){ case 0: case 1: case 2: case 3: printf("成绩很差退学\n");原创 2021-03-23 16:06:45 · 244 阅读 · 0 评论 -
C语言 成绩判断
#include<stdio.h>int main(){int FenShu;printf(“请输入成绩:\n”);scanf("%d",&FenShu);if(FenShu>=60&&FenShu<80){printf(“成绩及格\n”);}else if(FenShu>=80&&FenShu<90){printf(“还算可以\n”);}else if(FenShu>=90&&FenShu原创 2021-03-23 15:45:52 · 930 阅读 · 0 评论 -
c语言 if else选择语句
选择 条件如果。。。 那么。。。if()printfelseprintf格式if(条件){。。。}else{。。。}==表示判断 =赋值原创 2021-03-23 15:17:47 · 266 阅读 · 0 评论 -
c学习
C语言中变量先声明在使用变量三要素:类型、变量名(不以数字开头)、值(运算的数据)通过变量名访问值。printf养成 + \n的习惯原创 2021-03-23 10:12:04 · 111 阅读 · 0 评论