具体的过程是这样的:我们服务器上使用wordpress搭建了一个wiki系统。昨天的某个时刻未知原因其中的wp Editor.md插件无法正常使用,顶部工具栏丢失,没有右侧的实时显示功能。针对这个问题进行了很多尝试依旧没有解决,之后想着使用新插件替代之。直接在wordpress的插件中搜索markdown ,安装了一个pods插件。pods插件上来就是一个字段管理、可以新建字段也可以基于以前的字段。然后点了一下基于现有字段,觉得没有必要把他建立的数据做了一个删除操作。然后,噩梦就开始了,所有的文章消失不见。这就开启了我们的数据找回之路。

在过程中出现 #符号时,是在shell下操作。出现mysql>时,是需要登录mysql在数据库中操作。
大致步骤如下:
1、查看是否启用日志
命令:

mysql>show variables like 'log_%';

结果:

+----------------------------------------+------------------------------------------------+| Variable_name                          | Value                                          |+----------------------------------------+------------------------------------------------+| log_bin                                | ON                                             || log_bin_basename                       | /usr/local/mysql/var/mysql-bin                 |……| log_timestamps                         | UTC                                            || log_warnings                           | 2                                              |+----------------------------------------+------------------------------------------------+

分析: 红色部分信息log_bin的值为on表示已经启用日志。

2、mysql配置文件,查看是否开启了mysqlbinlog 日志,linux服务器下日期文件位于/etc/my.cnf。
命令:

#  cat  /etc/my.cnf

结果:

[client]#password   = your_passwordport        = 3306socket      = /tmp/mysql.sock[mysqld]port        = 3306socket      = /tmp/mysql.sockdatadir = /usr/local/mysql/var......

分析: 红色部分信息datadir的值(/usr/local/mysql/var)为数据文件所在的文件夹

3、查看当前日志文件
命令:

mysql> show master status;

结果:

+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000013 | 93260078 |              |                  |                   |+------------------+----------+--------------+------------------+-------------------+

分析:其中 mysql-bin.000013 为当前备份的文件名。注意,文件存放在数据文件中。

4、以时间为终点导出对应数据库的操作SQL。
命令:

/usr/local/mysql/bin/mysqlbinlog --no-defaults  --stop-datetime="2017-12-22 06:00:00" --database=wordpress_wik  /usr/local/mysql/var/mysql-bin.000012 > data.sql

结果:

WARNING: The option --database has been used. It may filter parts of transactions, but will include the GTIDs in any case. If you want to exclude or include transactions, you should use the options --exclude-gtids or --include-gtids, respectively, instead.查看到data.sql文件

分析:已经产生当前数据库操操作的DDL日志文件。

5、导出问题表中的数据
命令:

more data.sql | grep --ignore-case -E 'insert|update|delete' -A2 -B2 | grep wiki_posts > wiki.sql

结果:

--, 查看到wiki.sql文件

分析:已经从整个数据库文件过滤出wiki_post表操作记录

6、 在每条数据库操作后添加分号(;),将数据中的异常数据(0000-00-00 00:00:00)修改为(1987-01-01 00:00:00)
使用vim打开,使用vim命令
命令:

%s/$/;
%s/0000-00-00/1970-01-01

结果:

看到每行后的分号, 以及修改成功的数据

分析:添加成功

7、备份现有库中的数据
命令:

mysqldump  -uroot -p'密码' wordpress_wiki >wiki.sql

结果:

queryOK

分析:数据备份完成

8、清空问题表中的数据
命名:

truncate table wiki_post

结果:

Query OK

分析:表中数据清理完成

9、执行操作数据
命令:

 mysql -uroot -p'密码' -Dwordpress_wik --max_allowed_packet=50M --force -f  < ./wiki.sql

结果:

等待命令执行结束

分析:数据操作成功

此时文章已经找回

1.什么是硬件和软件 有哪些代表性名称

1.硬件
   所谓硬件是指组成计算机系统的物理设备,包含电子的、机械的、        磁的、光的设备的总和。计算机的硬件系统包含五个子系统,即控制部件、计算部件、存储部件、输入输出部件。控制部件负责程序和指令的解释和执行,指挥全系统的工作;计算部件对数据进行加工和运算;存储部件负责程序、数据信息的存储和管理;输入和输出部件与用户打交道,负责提交用户的需求和输出计算结果。在个人计算机中,控制部件和计算部件是合在一起的,称作中央处理器(CPU),也叫微处理器(常用英特尔 奔腾4)。存储部件分为内存和外存(常用的有金士顿),通常程序和数据只有需要运行时才会调用内存,平时他们被放在外存中。输入设备主要有键盘鼠标、扫描仪、软驱或光驱、语音或图像采集卡等。输出部件主要有显示器、绘图仪、打印机、软驱或光驱、语音或图像和成器以及可编程控制器等网络硬件设备。
2.软件
    软件是附着在计算机内存或外存伤的一大段程序,具有专门而完善的功能。比如我们熟悉的文字处理软件WPS和Word,就具有完善的文字编辑功能。人类飞著作,使用墨汁印刷在纸上呈现给我们看,音乐录制在次带上供我们欣赏,软件存储在软盘或光盘上供我们使用。软件不是软盘或光盘,只是以他们为载体而已。
    软件分为系统软件和应用软件。为了方便使用机器设备及其输入输出设备,充分发挥计算机系统的效率,围绕计算机系统本身开发的程序系统叫软件系统。比如我们常用的操作系统(DOS、Windows、Unix等)、语言编译程序、数据库管理软件。应用软件是专门为了某种使用目的而编写的程序软件,常用的有文字处理软件;专用的财务软件、人事管理软件;计算机辅助软件。

2.列举目前主流的计算机的硬件组成

处理器(CPU)
品牌:英特尔(Intel)
CPU型号:英特尔酷睿i7-6700k第六代处理器
CPU主频:4.0GHz
二级缓存:1MB
三级缓存:8MB
接口类型:intelLGA1151 
芯片制程:14nm   
TDP功率:95W
价格:1900-2400
显卡
品牌:技嘉(Gigabyte)
型号:GVN105TWF2OC4GD
芯片:Nvidia
芯片制程:16nm
接口类型:PCI-E 3.0
输出接口:DVIHDMIDP
显存位宽:128bit
显存类型:GDDR5
上市日期:2016年
价格:1000-1200
内存
品牌:金士顿(Kingston)
型号:DDR3 1600 8G
内存容量:8GB
传输类型:DDR3
内存频率:1600MHz
价格:500-600
主板
品牌:华硕(Asus)          
型号:B250-PLUS
主板结构:M-ATX紧凑型
内存类型:DDR4
最大内存容量:32GB
价格:800-1000
硬盘
品牌:金士顿(Kingston)
型号:SUV400S37 240G
硬盘类型:固态硬盘
接口类型:SATA
硬盘容量:240GB
价格:500-600
显示器
品牌:AOC
型号:12381FH
屏幕尺寸:23英寸
分辨率:1920*1080
价格:800-1000
键盘(罗技、牧马人等)
鼠标(罗技、牧马人等)

3.CPU的工作原理是怎样的?

1.概述

CPU的根本任务就是执行指令,对计算机来说都是有“0”和“1”组成的序列。

2组成

CPU从逻辑上可以划分为3个模块,分别为控制单元、运算单元和存储单元。
1.控制单元
    控制单元是整个CPU的指挥控制中心,有指令寄存器IR、指令译码器(ID)和操作控制器(OC)等,对协调整个电脑有序工作极为重要。他根据用户预先编号的程序,一次从存储器中取出各条指令放在指令寄存器中,通过指令编码确定应该进行什么操作,然后通过操作控制器,按确定的时序,向相应的部件发出微操做信号。操作控制器中主要包括节拍脉冲发生器、复位电路或启停电路等控制逻辑。
2.运算单元
    运算单元是运算器的核心。可以执行算术运算和逻辑运算。相对控制单元而言,运算器接受控制单元的命令动作,即运算单元所进行得全部操作都是有控制单元发出的控制信号来指挥的,所以他是执行部件。
3.存储单元
    包括CPU片内缓存和寄存器组,是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间断。

3.执行过程

CPU执行指令主要分为5各阶段,取指令、指令译码、执行指令、访存取数、结果写回。
1.取指令阶段
    取指令阶段是将一条指令从主存中取到指令寄存器的过程。
2.指令译码阶段
    取出指令后,计算机进入指令译码阶段,在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法。
3.执行指令阶段
    执行指令阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU的不同部分被连接起来,以执行所需的操作。
4.访存取数阶段
    访存取数阶段的任务是:根据指令的地址码,获得操作数在主存中的地址,并从主存中读取该操作数用于运算。
5.结果写回阶段
结果写回阶段把执行指令阶段的结果数据“写回”到某种存储形式

4.内存是用来做什么的?为什么内存被称为RAM?

内存

内存是计算机中重要的部件之一,他是与CPU沟通的重要桥梁。计算器中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。内存是由内存芯片、电路板、金手指等部分组成。

为什么内存被称为RAM

内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。因为随机存储器(RAM)是其中最重要的存储器,既可以从中读取数据,也可以写入数据,使用方便。所以一般将内存称为RAM(RandomAccessMemory)。

5.什么是操作系统?列出一些主流的操作系统。

操作系统

操作系统(Operating System,简称OS)主要分为计算机操作系统和手机操作系统。
计算机操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。 操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持,让计算机系统所有资源最大限度地发挥作用,提供各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口等。
手机操作系统主要应用在智能手机上。主流的智能手机有Google Android和苹果的iOS等。智能手机与非智能手机都支持JAVA,智能机与非智能机的区别主要看能否基于系统平台的功能扩展,非JAVA应用平台,还有就是支持多任务。手机操作系统一般只应用在智能手机上。

主流操作系统

  • UNIX
    UNIX是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统。UNIX 最早由Ken Thompson和Dennis Ritchie于1969年在美国AT&T的贝尔实验室开发。
  • Linux
    基于Linux的操作系统是20世纪1991年推出的一个多用户、多任务的操作系统。它与UNIX完全兼容。Linux最初是由芬兰赫尔辛基大学计算机系学生Linus Torvalds在基于UNIX的基础上开发的一个操作系统的内核程序,Linux的设计是为了在Intel微处理器上更有效的运用。其后在理查德·斯托曼的建议下以GNU通用公共许可证发布,成为自由软件Unix变种。它的最大的特点在于他是一个源代码公开的自由及开放源码的操作系统,其内核源代码可以自由传播。
  • XMacOS
    MacOS是一套运行于苹果Macintosh系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。Macintosh组包括比尔·阿特金森(Bill Atkinson)、杰夫·拉斯金(Jef Raskin)和安迪·赫茨菲尔德(Andy Hertzfeld)。Mac OS X于2001年首次在商场上推出。它包含两个主要的部分:Darwin,是以BSD原始代码和Mach微核心为基础,类似 Unix 的开放原始码环境。
  • Windows
    Windows是由微软公司成功开发的操作系统.Windows是一个多任务的操作系统,他采用图形窗口界面,用户对计算机的各种复杂操作只需通过点击鼠标就可以实现。

  • iso
    iOS操作系统是由苹果公司开发的手持设备操作系统。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。原本这个系统名为iPhone OS,直到2010年6月7日WWDC大会上宣布改名为iOS。截止至2011年11月,根据Canalys的数据显示,iOS已经占据了全球智能手机系统市场份额的30%,在美国的市场占有率为43%。

  • Android
    Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。

  • WP
    Android是一种以Linux为基础的开放源代码操作系统,主要使用于便携设备。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%。

操作系统的主要任务是什么?(什么是多线程及多处理)

操作系统的主要任务

操作系统(如Windows)的主要任务是:操作系统将CPU的时间片分配给多个线程,每个线程在操作系统指定的时间片内完成(注意,这里的多个线程是分属于不同进程的).操作系统不断的从一个线程的执行切换到另一个线程的执行,如此往复,宏观上看来,就好像是多个线程在一起执行.由于这多个线程分属于不同的进程,因此在我们看来,就好像是多个进程在同时执行,这样就实现了多任务

多线程

每个正在系统上运行的程序都是一个进程。每个进程包含一到多个线程。进程也可能是整个程序或者是部分程序的动态执行。线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。也可以把它理解为代码运行的上下文。所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。通常由操作系统负责多个线程的调度和执行。
多线程是为了使得多个线程并行的工作以完成多项任务,以提高系统的效率。线程是在同一时间需要完成多项任务的时候被实现的

多处理

多处理器系统(Multiprocessor Systems)是指包含两台或多台功能相近的处理器,处理器之间彼此可以交换数据,所有处理器共享内存,I/O设备,控制器,及外部设备,整个硬件系统由统一的操作系统控制,在处理器和程序之间实现作业、任务、程序、数组极其元素各级的全面并行。

                                                                黄忠尉
                                                                2017-12-02写于老九学堂

* 运算符及其优先次序

1.!、()、sieof()、++
2.算术运算符
3.关系运算符
4.  &&
5.  ||
6.赋值运算符

* 循环的三要素

1.初值
2.判断
3.更新

* 位运算符


a=0110    b=1010

& 与运算符 2个操作数同位相同时则为1,a&b=0010
或 运算符 2个操作数同位有一个为1则为1,a|b=1110
^ 异或运算符 2个操作数同位相同为0不同为1,a^b=1100
~ 非运算符 操作数为1则为0,操作数为0,则为1,~a=1001
>> 右移运算符 操作数向右移动指定的位数, a>>1 a =0011
<< 左移运算符 操作数向左移动指定的位数,a<<1,a=1100

计算1到100的累加和

#include<stdio.h>
int main()
{
  int sum = 0;    //累加和
  int i = 0;   
  while(i <= 100) //判断
   {
     sum = sum + i;
     i++;          //更新
  }
  printf("1到100的累加和=%d\n",num);

  return 0;
}

打印一个随机数字的每一位数

#include<stdio.h>
int main()
{   //个位数 = sum % 10
    //十位数 = sum / 10 % 10
    //百位数 = sun / 10 / 10 %10
   int sum;
   scanf("%d",&sum);
   while(sum > 0)
   {
      int i = sum % 10;
      sum = sum / 10;
      printf("数字的每一位数从个位开始是:%d\n",i);
   }
    return 0;
}

计算机的基本功能

输入-处理-储存-输出
输入设备→→→→→→→内存
—————————–双–↓
—————————–向–↓
—————————–流–↓
—————————–动–↓
———————–中央处理器→→→(双向流动)→→→→外部储存→→→→→→→输出设备

单位换算
8bit| |1byte
1024byte | | 1kb
1024kb | | 1Mb
1024mb | | 1GB
1024gb | | 1TB
1024TB | | 1EB

原码 反码 补码

计算机的原码,反码,补码都是八位二进制数。且原码和反码的取值是-127至127.
规则;;
真值:十进制数字转换二进制后的数字
原码:在真值的基础上用0补全至8位数字。并且(原码)正数的第一位用0表示,1用负数表示
反码:正数的反码是其本身 负数:符号位不变,其余数字取反。
补码(机械码):正数的补码是其本身 负数:在该二进制反码的基础上后缀+1
比如;
真值;-100100
原码;10100100
反码;11011011
补码;11011100

手动转换进制方法:
十转其它:短除法
其它转十:按权(进制)展开
eg;198(16)转换 ? (10)
过程:1 * 16 ^3-1 + 9 * 16^2-1 + 8 * 16^1-1
* * * * * * * * = 408

C语言符号用法

| # | 预处理 |
| ———— | ———— |
| stdio | 标准 |
| print | 输出 |
| format | 某种格式 |
| printf | 格式化输出 |
| include | 包含 |
standered input output
标准 输入 输出
所以 #include《stdio.h》的意思就是预处理包含了标准的输入输出头文件

C语言的编译和执行过程

1.编译:把你的代码输出到一个.b或.obj文件中
2.把.o和.obj文件和c函数库连接.h的头文件当中
3.生成一个可执行的二进制文件

ASCII码
0 空字符\0
32 空格
97 a
65 A
小a和大A差一个空格!

C语言scan的f规则注意事项

#include
int main(void)
{
    int num1;
    int num2;
    printf("请你输入二个数字代表帐号和密码,\n注意两个逗号隔开。\n");
    scanf("%d,,%d", num1, num2);
    printf("你输入的帐号和密码分别是%d\n%d\n", num1, num2);
}

在上段代码里scanf里%d和%d直接的两个逗号就是格式问题。用户必须按照这一种格式输入。
否则电脑只能读取到num1的数值或者会出现未知bug。有以下图分别是正确的格式输入和错误的格式输入。

运算符

运算符优先级

级别 运算符 结合方向
1 圆括号() 下标[] 分量 -> . 自左至右
2 非! 按位反~ 自加++ 自减–  单目+ – 指针* & 类型(type) 字节大小sizeof 自右至左
3 乘*  除/  求余% 自左至右
4 加+  减- 自左至右
5 左移<> 自左至右
6 小于< 小于等于 大于等于>= 自左至右
7 等于==  不等于!= 自左至右
8 按位与& 自左至右
9 按位异或^ 自左至右
10 按位或 自左至右
11 与&& 自左至右
12 自左至右
13 条件? : 自右至左
14 赋值= 复合赋值+= -= *= /= %= &= ^= /= <>= 自右至左
15 逗号, 自左至右

三元运算符

如名字表示的三元运算符需要三个操作数。
语法为:条件表达式?表达式1:表达式2。
e.g:

int num = 5>6?45:90;
short sex = 0;   //0--男   非0--女
printf("%s\n",sex?"女":"男");

补充:
一元运算符: ++ —
二元运算符: 5+4

sizeof运算符

计算对象所占的字节数,通常用来查看变量、数组或结构体等所占的字节个数。
e.g:

printf("%d]n",sizeof(1946));

输出的是:4.

运算符不是函数,只是测量被测量数的尺寸,不会运行其中的运算

int num =10;
printf("%d\n",sizeof(++num));
printf(num);

sizeof中的++num不会进行计算,所以最后输出的是:10.

小知识点补充:
清屏头文件 include 清屏语句: system(“cls”);

循环

while循环

while循环可实现“当型”循环,即当条件成立时,执行循环体。适合无法确定循环执行次数的情况。

while (表达式)
{
  循环语句
}

注意
+表达式为循环控制条件,一般是关系表达式或逻辑表达式的形式。
+循环控制条件也可以是任意合法的C语言表达式,例如:while (1)也是合法的,但注意尽量不要这样用,因为可能会导致死循环。
+执行时,如果程序死循环,可以使用ctrl+break组合键结束程序。
+循环语句也可以是空语句。
+循环体中的空语句可以表示循环不做任何操作,可能只是为了消耗CPU的计算控件,也有可能是为了占位暂时使用空语句的形式。
+多条循环语句必须用花括号括起来,以复合语句的形式出现。

e.g:

     int num = 9527;
     while (num!=0)
     {
         int temp = num%10;
         temp = (temp+5)%10;

         printf("数字是:%d\n",temp);

         num/=10;
     }

输出的数字是:2704.

e.g:
淘宝2015年的双十一交易额为800亿,并且每年以25%的增长趋势增长,求双十一交易额达到2000亿的年份.

    double money = 800;
    int year = 0;
    while (money <=2000)
    {
        money = money * 1.25;
        year = year+1;
    }
    printf("年份为:%d",2015+year);

答案年份为:2020.


** 2017年11月30日作与老九学堂**
steven

第一部分 Hello C语言

1. C语言的基本结构

        #include  
        void main()
        {
            printf(“Hello world!\n”);
        }
  • #: 以#开头的语句称为预处理指令。
  • stdio.h: 文件内包含了有关输入输出的语句的函- main(): main()函数为程序处理的起点,入口。
  • void: void表示main()函数的返回值为空,即无返回值。

2. C语言的编译和执行过程

  • 编译
    形成目标文件,目标文件是编译器的输出结果,常见扩展名为“.o”“.obj”
  • 连接
    将目标代码跟C函数库相连,并将源程序所用的库代码与目标代码合并,形成最终可执行的二进制机器代码。
  • 执行
    在特定的机器环境下运行C应用程序。

第二部分 好基友—变量与数据类型

1. 变量

  • 变量是计算机中一块特定的内存空间。
  • 命名规则
    1. 变量只能由字母、数字和下划线三种字符组成。
    2. 第一个字符必须为字母或下划线
    3. 不可以为关键字

2. 数据类型

  • C语言常用数据类型
数据类型 类型说明符 位数 取值范围
整型 int 32 -2147483648~+2147483648
短整型 short 16 -32768~+32767
长整型 long 32 -2147483648~+2147483648
单精度浮点型 float 32 -3.4E-38~+3.4E+37
双精度浮点型 double 64 1.7E-308~+1.7E+307
字符型 char 8 -128~+127

3.声明和使用变量

  • 声明变量
    int num; //表示:声明一个整型的变量“num”
  • 赋值
    num=9; //表示:将数字“9”赋值给已经声明的整型的“num”
  • 声明并赋值
    int num=9; //表示:声明一个整型的变量“num”,并将数字“9”赋值给“num”
  • 案例
    1. 声明并初始化
          #include  
          void main()
          {
              int num1=125;   
              printf("num1=%d\n",num2);
          return 0;
          }
      
    2. 先声明后初始化
          #include  
          void main()
          {
              int num2;
              num2=125;
              printf(“num2=%d\n”,num2);
          return 0;
          }
      
  • 双精度浮点型(double)
    1. 通常小数被存储为double类型。
    2. 当使用long double时,需要在数字后面加L,如3.14L。
    3. double类型的占位符为“%lf”。
    4. %.2lf可以控制数字的显示精度。
      示例:

          #include 
          void main()
          {
              double num1=2.0; 
              double num2;
              num2=num1*3.1415926;
              printf(“num2=%.2lf\n”,num2);
          return 0;
          }
      

      》》》打印结果:num2=6.28《《《

  • 单精度浮点型(float)

    1. float类型变量赋值时需要在数值的末尾加上一个f。
    2. float类型的占位符是%f。
    3. %.2f可以控制数字的显示精度。
      示例:

          #include 
          void main()
          {
              float num1=2.0f; 
              float num2;
              num2=num1*3.1415926;
              printf(“num2=%.2f\n”,num2);
          return 0;
          }
      

      》》》打印结果:num2=6.28《《《

  • 字符型(char)

    1. 声明及初始化
      char cr=”h”;
    2. ASCII码

第三部分 运算符与表达式

  • 运算符:赋值运算符、算术运算符、关系运算符、逻辑运算符。
  • 表达式:符号与操作数的组合。
  • sizeof运算符
    使用sizeof运算符可以获得数据类型占用内存空间的大小

  • 运算符优先级
    (),sizeof , ++ , — ! 》》》算术运算符,关系运算符 》》》 逻辑运算符》》》赋值运算符。

第四部分 烧脑时间 — scanf

  1. scanf函数
    c函数库包含了多个输入函数,scanf是最通用的一个,可以读取不同格式的数据。读取基本类型的值时,变量前要加“&”符号。

    1. 示例:
          #include 
          void main()
          {
              int num;   
              printf(“请输入一个整数:”);
              scanf(“%d”,&amp;num);
              printf(“num=%d\n”,num);
          return 0;
          }
      

使用命令行编译执行C语言

  1. 确认gcc.exe是否可用(如果可以直接执行第3步)
    键盘输入Windows键+r键,然后输入“cmd”,打开以后在命令行输入“gcc”
    如果返回了结果,则说明gcc文件可用,如果显示“不是内部或外部命令,也不是可运行的程序或批处理文件”则说明gcc文件不可用,需要执行第2步。
  2. 配置环境变量
    因为没有在自己的环境变量中添加gcc.exe的路径。所以系统找不到。
    添加方法:
    我的电脑—右键—属性—高级系统设置—环境变量—系统变量—path,然后将gcc.exe的安装目录复制在后面就可以了。
  3. 写程序
    首先新建一个文本文档“hw”(F盘),并将文件的后缀改为“.c”(hw.c),然后在文件内输入下面的代码:

        #include 
        int main()
        {
            printf("Hallo Wold!");
        return 0;
        }
    
  4. 编译运行
    打开cmd,依次输入下面的指令:
    F: 回车 //进入F盘
    dir 回车 //显示F盘目录
    gcc hw.c -o hallo 回车 //访问hw文件,并新建一个hallo.exe文件
    打开hallo.exe文件即可运行上面编写的程序。

——黄忠尉 小梳于老九学堂


  • 第一步 编写代码

    • 在记事本中编写HelloWorld的C语言代码,完成后ctrl+s保存,然后将文件后缀HelloWorld.txt改名为HelloWorld.c
      \#include <stdio.h>
      int main()
      {
      printf("Hello World!");
      return;
      }
  • 第二步 配置环境变量

    • 我的电脑→右键属性→高级系统设置→高级环境变量
    • 在下面找到Path,打开并编辑,在最后粘贴上你mingw文件夹下bin目录,然后保存
  • 第三步 编译

    • 首先在命令行内输入 cd/x y (x为HelloWorld所在硬盘,y这里放入HelloWorld.c文件所在的路径)
      例如放在D盘,就输入 cd/d D:
      然后输入指令 gcc HelloWorld.c
      这样在HelloWorld.c所在文件夹下就会出现一个a.exe文件,也就是说我们成功的将.c文件转换成了计算机可直接运行的.exe文件。接下来直接在命令行输入 a ,就会看到程序执行结果,当然也可以直接运行a.exe。

命令行编译helloworld

第一步 配置环境变量

把MinGW目录下的bin文件路径放在PATH环境变量下即可

第二步 记事本写代码

用记事本写如下代码:

    #include 
        void main()
         {   
        printf("Hello World!\n");
        }

最后保存为扩展名为.c类型的文件。
abc

打开命令行用gcc编译

  1. 打开命令行
  2. 复制.c文件所在的路径
  3. 在命令行输入gcc 空格 .c文件所在的路径,此时会在对应文件夹内生成一个a.exe
    abc3

运行程序

  1. 直接输入a.exe即可以运行hellow world了
    ABC

                                  -BY 看不懂啊

—————————–2017年11月29日———————————–

在WIN下使用命令行方式编译C程序

1.新建一个文件夹,如在D盘新建一个文件夹,命名为demo
2.在demo文件夹中建立一个文本文件,重命名为test.c
3.使用记事本打开test.c,编辑如下代码:
#include
void main()
{
printf(“Hello World!\n”);
return 0;
}
4.使用快捷键WIN + R,输入cmd,进入命令行模式,
输入: D:
输入:cd demo
输入:gcc test.c
运行结束后,demo文件夹下会多一个a.exe文件,既我们编译成功的文件
在命令行中输入a.exe或者直接双击运行a.exe

首先 下个东西 “MinGW”放到C盘
然后键盘win + r (这里的r是run的意思)
输入cmd,回车,你就看到了命令行,输入gcc -v
有东西返回就对了
然后在E盘创造一个文件夹取名myc(名字最好是英文),然后在这个文件夹里建造一个文档 把以下内容输入进文档
#include
#include

int main()
{
printf(“Hello world!\n”);

return 0;

}
然后改名为“.c”文件 ”

现在在命令行里输入如下: E:
cd myc
gcc test001.c
这里的cd是change directory的意思。此时你会发现生成了一个新的文件a.exe。 就是myc里生成的
然后再在命令行里输入: .\a.exe
就成功的输出如图所示了
———————————————————————————————————收功**