C语言整理

2023-11-19

C语言整理

——谭大爷的书[精简版]

程序设计和C语言

1. main表示主函数,int表示类型,stdio是一个文件名,.h是头文件,#include指令把信息调用

2. 函数的组成:函数首部和函数体(声明部分与执行部分)

3. 编辑-编译-链接-执行

顺序结构

1. 指数的表示:12.34e312.34103次方),-346.87e-25,注意eE前必须有数字,后面必须是整数

2. 符号常量:指定一个符号代表一个常量,#define PI 3.1416

3. 转义字符:由\与字符值两部分组成

转义字符

意义

ASCII码值(十进制)

\a

警告(alert,产生声音或视觉信息

007

\b

退格(BS) ,跳到前一列

008

\f

换页(FF),到下页开头(会影响打印机执行)

012

\n

回车换行(LF) ,跳到下一行开头

010

\r

回车(CR) ,到本行开头

013

\t

水平制表(HT) 跳到下一个TAB位置

009

\v

垂直制表(VT),跳到下一个垂直制表对齐点(会影响打印机执行)

011

\\

输出一个反斜线

092

\'

输出一个单引号

039

\"

输出一个双引号

034

\?
  

输出一个问号
  

063
  

\0

空字符

000

\ooo

三个位置组成的八进制数,来表示任意字符

三位八进制

\xhh

x后面的字符是十六进制数,来表示任意字符

二位十六进制

4. 数据类型:

    基本数据类型 short2字节)、int4)、long4)、char1)、float4)、double8

空类型(void

指针类型(只能存地址)

构造类型 数组、结构体、共用体(union)、枚举(enum

5. 运算符:%取余,++i使用前先加一,i++使用后再加一

6. 不同类型数据间的混合运算:

    先转换成同一类型,再进行运算。

    可强制转换,例如:a=(int)(x+y) 强制转换为整型等。

7. 格式控制符:

    %d,按整型数据的实际长度输出。

    %mdm为指定的输出字段的宽度。

    %ld,输出长整形数据。

    %o,以八进制整形式输出整数。

%x,以十六进制数形式输出整数。

%u,用来输出unsigned无符号整型,输入范围为正数,以十进制形式输出。

%c,用来输出一个字符。

%s,用来输出一个字符串。

%f,用来输出实数(包括单双精度),以小数形式输出。

%e,以指数形式输出实数。

%g,用来输出实数,它根据数值的大小,自动选f格式或e格式(选择输出是占宽度较

小的一种),且不输出无意义的零。

%p,用于变量地址的输出。

scanf(%[^\n],str);  //遇到回车结束。

%%,输出一个“%”。

**,表示幂次,比如a的三次方可表示为:a**3 

printf("c=%#x\n",c);ox)十六进制   printf("c=%#d\n",c);十进制  printf("c=%#o\n",c);

o)八进制

注意:%-m.nd等的含义与使用方式。

8. C语言运算符:

(1)逻辑运算符:  !(非)、&&(且)、||(或)

(2)位运算符:  <<(左移,例:a<<1 左移一位,结果为a*2 )、>>(右移,右移的位

     数舍弃,左补空位)、~(按位求反)、|(按位或)、^(按位异或)、&(按位

     与)

(3)条件运算符:  ?:(例如:max = (a>b) ? a : b ) 相较于if else要简单的多;具有

     结右性。

(4)逗号运算符:从左向右运算,值为最后一位。例如:a=(x+3,y++,x++)  这里a的值

     x++

(5)指针运算符:&”是取操作对象的地址,“*”是取指针指向的对象的内容,两

     者互为逆运算。&(*p) = p 表示指针,*&x= x 表示变量x

     例:int x , *p ;

         p = &x ;

6)求字节数运算符:sizeof  例:int len = sizeofa

7)成员运算符:.  -> (指针)

9. C语句:

控制语句If( )...else... \for( )...\while( )...\do...while( )\continue结束本次循环\break强制

结束\switch\return\goto很少用。

函数调用语句;表达式语句:i=3;空语句;复合语句{ }

10. 有关数据的输入输出:

谭大爷的书[精简版]        输入    输出

字符   getchar  putchar  可以:putchar(getchar(a));

格式    scanf    printf

字符串  gets()    puts()

 

选择结构

1. 谭大爷的书[精简版]算数运算符(+ - * /)      ()

      关系运算符(>=<===等)     

    赋值运算符(=)           ()

2. switch多分支选择语句:

Switch(表达式)  //表达式的类型:整数类型(包括字符型)

{

case 常量:语句;break//可以有多个case,表达式和常量相同时执行

. . .

default: 语句;//只能有一个default

}

3. 逻辑变量的使用:提高可读性、减少出错。

    #include

bool leap;

leap=ture;或者leap=false;

循环结构

1. break语句提前终止循环(只能用于以下两种情况):

    结束switch语句;跳出循环体,进入循环体下面的语句;

2. continue语句提前结束本次循环:接着执行下一次循环。

数组

1. 一维数组:类型符 数组名 [常量表达式]

    注意:常量表达式要为一个定量;不合法:static int a[a*n]

    易出错的地方:循环赋值;初始化;

2. 排序问题:

   1)折半法(2)起(冒)泡法(3)选择法

3. 二维数组:类型符 数组名 [常量表达式][常量表达式]

    初始化:可部分初始化,例如:int a[3][4]={{1},{5},{9}};这里的第一竖列为159,其他为0

4. 字符数组:char c[10]char c[5][5],必须要初始化哟!

函数

1. 处理字符串的函数:

   (1)字符串连接函数 strcat strcat(字符数组名1,字符数组名2)

     功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符

     1后的串标志“\0”。本函数返回值是字符数组1的首地址。

     注意:字符数组1应定义足够的长度

   2)字符串拷贝函数strcpy strcpy(字符数组名1,字符数组名2)

     功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“\0”也一同

     拷贝。

   3)字符串比较函数strcmp strcmp(字符数组名1,字符数组名2)

        功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结

        果。

     字符串1=字符串2,返回值=0

     字符串1〉字符串2,返回值〉0

     字符串1〈字符串2,返回值〈0

   4)测字符串长度函数strlen

     功能:测字符串的实际长度(不含字符串结束标志\0’)

   (5)大写字母换为小写strlwr( )

   (6)小写换大写strupr( )

         熟悉常用数学函数!!

2.   若定义函数在main函数后面:应当在main函数前或main函数开头部分,对函数进行

 声明,之后才能调用。

3.  所有函数都是平行的,不能嵌套定义。

4.  按函数的形式看,分为两类:

    1)无参函数:例如,

Int main( )

{

Void printf_star( );

Printf_star( );

}

Void printf_star( )

{

Printf(*********\n);

}    

2)有参函数:例如,

Int max(int x,int y)

{

Int z;

z=x>y?x:y;

Return(z);

}

最后max的值为z 

5.  实参与形参的类型应相同或赋值兼容(书上有解释P177

6.  函数声明格式:

   1)函数类型 函数名(参数类型1 参数名1,参数类型2 参数名2......);

   2)函数类型 函数名(参数类型1,参数类型2.......);//显得更加精炼

7.   嵌套调用函数:例如,可以在第一个子函数里声明、调用一个新的函数,然后在第一个

   子函数后面定义这个新的函数,从而实现嵌套调用。

8.   函数的递归调用:类似于一个算式的逆过程(只明确的知道其中的一项值),并且要用

   if...else...来帮助结束递归,得到最终值。

9.  数组作为函数参数:

   1)数组元素作为函数实参

   2)数组名作为函数实参:向形参(数组名或指针变量)传递的是数组首元素的地址。

       例如,

       int main()

       {

       int aver(int array[10]);//声明函数,形参数组可以不定义大小,int array[]

       int a[10],i,average;

       for(i=0;i<10;i++);

       scanf(%d,&a[i]);

       average=aver(a);

       printf(%d\n,average);

       return 0;

       }

       int aver(int array[10])//可写作int aver(int array[])

       {

       int i,sum=array[0];

       for(i=1;i<10;i++)

       sum+=array[i];

       aver=sum/10;

       return(aver);

       }

   3)多维数组名作函数参数:定义形参时可以指定每一维的大小,也可以省略第一维

      的大小。

10.  变量的存储方式:

1)静态存储:外部变量(全局变量)、静态外部变量、静态局部变量

2)动态存储:函数的形参、定义的没有用关键字static(静态)声明的变量,即自动

   变量、函数调用时的现场保护和返回地址等。

11.  局部变量的存储类别:

(1) 自动(auto)变量:函数中的形参和在函数中定义的局部变量(包括在复合语

   中定义的局部变量)例如,auto int b;//auto可省略不写,属于动态存储方式。

(2) 静态局部变量(static局部变量):函数中的局部变量的值在函数调用结束后不消

     失而继续保持原值(占用的存储单元不释放),在下次调用函数时,该变量已有

     值了。P206的例子很不错~

    注:定义局部变量时,若不赋初值,静态局部变量编译时会自动赋初值为0\0

       自动变量的值则是不确定的,因为每次函数调用结束后存储单元会释放,然后下

       次重新分配。

(3) 寄存器(register)变量:一些变量需要频繁使用,为提高执行效率,允许将局部

     变量的值放在CPU的寄存器中,需要时直接从寄存器取出参加运算。

    注:一般变量的使用是这样的,当然比较慢:由控制器发出指令将内存中该变量的值

       送到运算器中。运算完了,如果需要存数,再从运算器将数据送到存储器中存放。

(4) 外部extern:用于扩展全局变量的作用域,比如如果函数想引用一个外部变量,      

     但该外部变量在该函数后定义,那么这个函数需要使用 extern 来声明变量,这

    样才能使用在该函数后面定义的全局变量。此外,extern 还可以在多文件的程序

     中声明外部变量。可写作extern int A;或者extern A;

指针

1. 指针的认识:房号象征“地址”,房客象征“内存单元里存放的数据”。地址指向变量单元,而“地     址”也被形象化的称为“指针”。指针是一个地址,指针变量是存放地址的变量。

2. 直接访问:用A钥匙开A抽屉。

    间接访问:用B钥匙打开B抽屉,取出B中的A钥匙,用A钥匙打开A抽屉。

3. 指针变量的值是地址,例如,i_pointer(是指针变量)=&i ; i=3 ; 所以 *i_pointer=3 ;

    // *”表示指向

4. 定义指针变量:类型名 *指针变量名

    int *a,指针变量a读作“a是指向整型数据的指针变量”,int *读作“指向int的指针”

5. 指针变量作为函数参数:

    例如,int main()

          {

          int swapint *p1,int *p2;

          swap(p1,p2);//注意这里是将指针变量(内存放的地址)作为实参来传递的;

          }

          void swap(int *p1,int *p2)

          {

          int temp;

          temp=*p1;

          *p1=*p2;

          *p2=temp;//通过指针从而实现了指针指向的值的交换,因为函数结束后会释放

          };

      注意:若是在子函数里,通过交换p1p2指针变量存的地址,是不能交换指向的值的。

6. int *fun(); 是返回一个指针的函数、int (*fun)( ); 是指向函数的指针、int *array[n]; 是数      组、int (*array)[n]; 是指向一维数组的指针。

7. 数组元素的指针:就是数组元素的地址。

    int *p ; p=&a[0] ;  p=a ; 数组名不代表整个数组,只代表数组首元素的地址。

8. p+1,直接增加一个位置。

9. 指向函数的指针:int (*p)(int int);  p=max;  c=(*p)(a,b);  外面一个子函数int max(int x,int                 y){   }

10. 返回指针值的函数:  float *search(float (* pointer)[4],int n)

                          {

                          float *pt;

                          return(pt);

                          }

11. 指针数组:一个数组里的元素全为指针。int *p[4];

    区别:int*p[4] ;  指针p指向一个含有4个元素的数组;

动态内存分配与指向它的指针变量

      #include

1. 使用malloc函数。格式: void *malloc(unsigned int size);

    Malloc(100); //开辟一个100字节的临时分配域,函数值为第一个字节的地址。如果执

    行失败则返回NULL。 例如:p=(int *)malloc(5*sizeof(int));5个空间的整型指针。

2. 动态数组: void *calloc(unsigned n,unsigned size);   分配nsize大小的空间,以保持一个     数组。 例如:P=calloc(50,4);

3. free函数,释放空间;

4. 改变malloccalloc已获得的空间大小:realloc函数,void *realloc(void *p,unsigned int size);  例,使用     时,realloc(p,50);

建立数据类型

一、结构体

1. 结构体:struct Student

            {

              Int num; int age;  char name[20];  char sex;

            };  < - - 千万注意这个分号。

2. 定义结构体,有3种方法:

     (1) struct Student   student1,student2;

         (结构体类型名)  (结构体变量名)

     (2) 同时定义:  struct Student

                 {

                 }student1,student2;

     (3) 不常用,不指定类型名:struct

                      {

                      }student1student2;

      注意:结构体变量使用前要初始化。要引用的话,加个.”就行了。

3. 结构体数组:struct Student {  }stu[4];  即定义了4个学生;

4. 结构体指针:  

             ( 1 )        struct Student{ };  

                  struct Student stu1;

                  struct Student *p;   //注意这一步

                  p=&stu1;

    这样后面的stu1.num 可以用 (*p).num 或者p->num替换。

   ( 2 )  如果是指针数组呢?  

   还是定义 struct Student *p;  后面就可以用到for循环了:

    forp=stu ; p

二、链表

1. 建立静态链表:

struct Student

{

struct Student *next;

};

int main()

{

struct Student a,b,c,*head;

head=&a;

a. next=&b;

b. next=&c;

c. next=NULL;

}

2. 建立动态链表:

//抄了书上一个程序,自己体会。

#include

#include

#define LEN sizeof(struct Student)

 

struct Student

{

long num;

float score;

struct Student *next;

};

 

int n;

strucr Student *creat()   //建立链表的函数

{

struct Student *head;

struct Student *p1,*p2;

n=0;

p1=p2=(struct Student *)malloc(LEN);

scanf(%ld,%f , &p1->num,&p1->score);

head=NULL;

while(p1->num!=0)

{

n=n+1;

if(n==1)head=p1;

elae p2->next =p1;

p2=p1;

p1=(struct Student *)malloc(LEN);

scanf(%ld,%f , &p1->num,&p1->score);

}

p2->next=NULL;

return(head);

}

 

void print(struct Student head)

{

struct Student *p;

printf(\nNow,These %d record are:\n,n);

p=head;

if(head!=NULL)

  do

  {

printf(%ld,%5.1f\n,p->num,p->score);

p=p->next;

  }while(p!=NULL);

}

 

void main()

{

struct Student *head;

head=creat();

printf(head);

}

三、共用体

1. 用同一段内存单元存放不同类型的变量。

union data  //data是共用体名

{

int i;

char ch;

float f;

};

定义方式和结构体相似,但是共用体变量只能存放一个值,存在覆盖现象。

四、枚举类型

1. 声明:enum Weekday{ sum,mon,tue,......};

    也可作  enum {  }Weekday;

2. 定义:enum Weekday  workday,weekend;

          类型名           变量名

Weekday=num;

五、typedef声明新类型名

1. 用新的代替原有的:typedef int Integer;

2. 偷懒1号。typedef struct

              {

              }Student;

          Student stu1,stu2;

偷懒2号。typedef int array[100];

          array a;   //a为整型数组名,有100个元素。

反正其他情况都可以用。

文件的输入输出


wei wan dai xu ... ...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言整理 的相关文章

  • 华为OD机试真题-文本统计分析-2023年OD统一考试(C卷)

    题目描述 有一个文件 包含以一定规则写作的文本 请统计文件中包含的文本数量 规则如下 1 文本以 分隔 最后一条可以没有 但空文本不能算语句 比如 COMMAND A 只能算一条语句 注意 无字符 空白字符 制表符都算作 空 文本 2 文本
  • 特殊类设计

    1 请设计一个类 不能被拷贝 拷贝只会放生在两个场景中 拷贝构造函数 和 赋值运算符重载 c 98 将拷贝构造函数与赋值运算符重载 只声明不定义 并且将其访问权限设置为私有 即可 class Copyban Copyban const Co
  • 华为OD机试真题-英文输入法-2023年OD统一考试(C卷)

    题目描述 主管期望你来实现英文输入法单词联想功能 需求如下 依据用户输入的单词前缀 从已输入的英文语句中联想出用户想输入的单词 按字典序输出联想到的单词序列 如果联想不到 请输出用户输入的单词前缀 注意 1 英文单词联想时 区分大小写 2
  • 华为OD机试真题-求字符串中所有整数的最小和-2023年OD统一考试(C卷)

    题目描述 输入字符串s 输出s中包含所有整数的最小和 说明 1 字符串s 只包含 a z A Z 2 合法的整数包括 1 正整数 一个或者多个0 9组成 如 0 2 3 002 102 2 负整数 负号 开头 数字部分由一个或者多个0 9组
  • 华为OD机试真题-员工派遣-2023年OD统一考试(C卷)

    题目描述 某公司部门需要派遣员工去国外做项目 现在 代号为x的国家和代号为y的国家分别需要cntx名和cnty名员工 部门每个员工有一个员工号 1 2 3 工号连续 从1开始 部长派遣员工的规则 规则1 从 1 k 中选择员工派遣出去 规则
  • 每日一练2023.12.16——吃火锅【PTA】

    题目链接 L1 070 吃火锅 题目要求 以上图片来自微信朋友圈 这种天气你有什么破事打电话给我基本没用 但是如果你说 吃火锅 那就厉害了 我们的故事就开始了 本题要求你实现一个程序 自动检查你朋友给你发来的信息里有没有 chi1 huo3
  • 如何利用CHAT写C程序?

    问CHAT 用c语言编写在二维字符数组中查找某个字符串 CHAT回复 以下是一个简单的C程序 它将在二维字符数组中查找特定的字符串 c include
  • C 库函数 - mktime()

    描述 C 库函数 time t mktime struct tm timeptr 把 timeptr 所指向的结构转换为自 1970 年 1 月 1 日以来持续时间的秒数 发生错误时返回 1 声明 下面是 mktime 函数的声明 time
  • C++基础-一维和二维数组详解

    目录 定义 一维数组 二维数组 定义 数组是相同类型的对象序列 它们占据一块连续的内存区 一维数组
  • VScode配置mingw C语言环境变量

    C语言IDE VScode VScode是个人比较喜欢的一款IDE软件 鄙人曾同时在VScode软件中运行三个终端 开发Python Golang和C语言 下载地址如下 code visualstudio com VScode配置mingw
  • C语言—每日选择题—Day54

    第一题 1 存在int类型变量x y z 其对应值为x 0x59 y 0x39 z 0x6E 则x y z的值为 A 1 0010 0111 0011 B 1 0100 0011 1111 C 1 0010 0111 0111 D 1 01
  • C语言—每日选择题—Day55

    第一题 1 若有如下定义 则 p1 m p2 p1 是正确赋值语句 说法是否正确 int p1 int p2 int m 5 int n A 正确 B 错误 答案及解析 A 本题考查的是对类型的认识 p1是指针类型 赋值的右操作数就必须是地
  • CMake 教程

    这篇文章主要介绍 CMake 的使用 看完这篇文章后 CMake 的绝大多数使用方法你都能掌握 本篇文章采用循序渐进的方法带你一步步逐渐进阶 CMake 通过多个示例 告诉你如何使用 CMake 解决常见的构建系统问题 各位爱学习的朋友 收
  • BMS开发之面向对象思想(adbms1818)

    借鉴adbms1818的底层驱动代码 前言 adbms1818的主要用途就是不同种类的寄存器里面存储不同的数据 程序员需要通过特定的协议往寄存器里面写入或者读出数据 1 定义一个结构体 里面存储了adbms1818的所有寄存器的信息 然后我
  • C语言——!(--x)和!(-x)以及while(!(--x)) 和 while(!(-x))

    一 x 和 x 1 x 这个表达式表示先对变量 x 执行自减操作 即 x 的值减去 1 然后对自减后得到的结果取逻辑非 如果自减后的 x 等于 0 则逻辑非运算的结果为真 值为 1 否则结果为假 值为 0 2 x 这个表达式表示对 x 取反
  • 华为OD机试真题-反射计数-2023年OD统一考试(C卷)

    题目描述 给定一个包含 0 和 1 的二维矩阵 给定一个初始位置和速度 一个物体从给定的初始位置触发 在给定的速度下进行移动 遇到矩阵的边缘则发生镜面反射 无论物体经过 0 还是 1 都不影响其速度 请计算并给出经过 t 时间单位后 物体经
  • Freertos低功耗管理

    空闲任务中的低功耗Tickless处理 在整个系统运行得过程中 其中大部分时间都是在执行空闲任务的 空闲任务之所以执行 因为在系统中的其他任务处于阻塞或者被挂起时才会执行 因此可以将空闲任务的执行时间转换成低功耗模式 在其他任务解除阻塞而准
  • CCF模拟题 202309-2 坐标变换(其二)

    问题描述 试题编号 202309 2 试题名称 坐标变换 其二 时间限制 1 0s 内存限制 512 0MB 问题描述 对于平面直角坐标系上的坐标 x y 小 P 定义了如下两种操作 1 拉伸 k 倍 横坐标 x 变为 kx 纵坐标 y 变
  • /lib64/libstdc++.so.6库缺失

    问题 lib64 libstdc so 6 version CXXABI 1 3 8 not found lib64 libstdc so 6 version CXXABI 1 3 9 not found lib64 libstdc so
  • 带头双向循环链表基础

    带头双向循环链表基础 销毁 销毁 void ListDestory ListNode phead void ListDestory ListNode phead assert phead ListNode cur phead gt next

随机推荐

  • 回声消除(AEC)原理、算法及实战——AEC背景介绍

    回声就是声音信号经过一系列反射之后 又听到了自己讲话的声音 这就是回声 一些回声是必要的 比如剧院里的音乐回声以及延迟时间较短的房间回声 而大多数回声会造成负面影响 比如在有线或者无线通信时重复听到自己讲话的声音 回想那些年我们开黑打游戏时
  • EL表达式向select中赋值

    在使用el表达式的时候 有时需要向select下拉菜单中赋值 可以使用三目运算法进行赋值
  • 3. ClickHouse数据类型和表结构

    3 1 数据类型 整数类型 整数类型有Int8 Int16 Int32 Int64 分别表示8位 16位 32位和64位有符号整数 适用场景 存储整数值 如年龄 数量等 浮点类型 浮点类型有Float32和Float64 分别表示32位和6
  • Jenkins自动化部署项目

    Jenkins史上最详细的使用教程 jenkins官网 jenkins简单部署Vue项目 jenkins部署springboot项目 jenkins详细部署说明 后续小编会写上自己的使用心得 jenkins官网 https www jenk
  • 计算机用于更新无法卸载补丁,出现windows 系统补丁无法卸载该怎么解决?简单几步即可解决...

    电脑已经成为我们日常生活中的必备品 长期使用电脑肯定会碰到win10系统kb4034674无法卸载提示 没有成功卸载全部更新的问题 很多用户之前从未遇到win10系统kb4034674无法卸载提示 没有成功卸载全部更新这样的问题 其实win
  • 【前端基础知识复习】

    js基础知识复习 原型链 继承 原型链继承 经典继承 借用构造函数 组合继承 1和2结合 常用 原型式继承 ES5 Object create 寄生式继承 寄生组合继承 最理想 作用域与作用域链 闭包 立即执行函数 typeof和insta
  • 服务器内核有未知文件,【原创文章】CENTOS kernel panic无法对未知的块安装根文件系统的解决办法...

    今天突然发现维护的linux系统无法访问了 网站打不开 SSH无法登陆 后台面板也没有响应 打开机房的管理后台 reboot服务器 过了一会还是没有反应 有点纳闷 这是商业网站 不敢怠慢 马上开工找问题 打开机房准备的KVM KVM是基于j
  • 一、super slomo介绍

    本专题文章对super slomo进行一系列操作 降低训练时间 预测时间 导出训练模型 C 调用模型进行预测等 本章对其进行一个简单介绍 来自互联网 2018年CVPR的论文 Super SloMo High Quality Estimat
  • 阿里平头哥CPU技术生态负责人陈炜:平头哥的发展之路

    整理 巫柔颖 RISC V是近年兴起的一种CPU新架构 因其开放 灵活的特性而逐渐成为半导体行业的热门选择 当前 已有近2500家机构加入RISC V基金会 包括阿里 华为 Google 英特尔 IBM等公司 在阿里宣布平头哥开源玄铁RIS
  • windows sql server 如何卸载干净?

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 windows sql server 怎么卸载干净 前言 一 windows sql server是什么 二 如何卸载干净 1 关闭sql server服务 2 到控制面板
  • hive 表创建及字段信息管理

    1 分区表创建及数据导入 1 1 创建分区表 以日期pt分区 字段用 t分隔 输入格式为txt 存储格式为orc use db name drop table if exists tablename CREATE TABLE IF NOT
  • Windows10 adb安装与环境变量配置

    adb安装与环境变量配置 目录 adb安装与环境变量配置 安装adb工具都需要什么 Android SDK 的下载 如何配置变量环境 adb启动不了是什么原因 安装adb工具都需要什么 1 需要下载Android SDK 配置环境变量即可
  • 797. 所有可能的路径

    class Solution public vector
  • 用STM32F407ZET6的HAL库写一个串口接收,发送代码,支持ringbuff

    你可以参考这个示例代码 https www st com content ccc resource technical document application note group0 b5 d4 04 c1 b4 4f 4d e5 DM0
  • 准确率与召回率

    1 准确率与召回率 Precision Recall 准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值 用来评价结果的质量 其中精度是检索出相关文档数与检索出的文档总数的比率 衡量的是检索系统的查准率 召回率是指检索出的相关文档
  • 求字符串长度的三种方法(C语言)

    如何求字符串的长度 首先要明白字符串存储的原理 字符串存储时 是以 0 结尾 这个就可以作为判断字符串结尾的一个条件 接下来 只要有字符串的首元素地址 就可以解决求字符串长度的问题啦 第一种 普通版 int my strlen char s
  • Revit 2019: Essential Training for MEP (Metric) Revit 2019:MEP基本培训 Lynda课程中文字幕

    Revit 2019 Essential Training for MEP Metric Revit 2019 MEP基本培训 Lynda课程中文字幕 Revit 2019 Essential Training for MEP Metric
  • 转载:Swap与Memory内存简单介绍

    背景介绍 对于Linux来说 其在服务器市场的使用已经占据了绝对的霸主地位 不可动摇 Linux的各种设计思想和使用也被传承 当然不乏各种黑Linux 而且黑的漂亮 Linux的很多独特的设计 对性能也产生了巨大的提升 也为其他应用软件和系
  • 如何加载MySql数据库驱动?

    一 直接把下载好的驱动jar包放在了C 下 二 修改CLASSPATH 右键 我的电脑 gt 环境变量里 遇到的问题 1老是遇到如下图红线框中的问题 修改了有5678次才修改
  • C语言整理

    C语言整理 谭大爷的书 精简版 l 程序设计和C语言 1 main表示主函数 int表示类型 stdio是一个文件名 h是头文件 include指令把信息调用 2 函数的组成 函数首部和函数体 声明部分与执行部分 3 编辑 编译 链接 执行