- c语言辅音字符怎么表示,C 语言实例 - 判断元音/辅音
吴世宁
c语言辅音字符怎么表示
C语言实例-判断元音/辅音C语言实例C语言实例判断输入的字母是元音,还是辅音。英语有26个字母,元音只包括a、e、i、o、u这五个字母,其余的都为辅音。y是半元音、半辅音字母,但在英语中都把他当作辅音。实例#includeintmain(){charc;intisLowercaseVowel,isUppercaseVowel;printf("输入一个字母:");scanf("%c",&c);//小
- C 语言实例 - 判断素数
智慧浩海
C语言c语言算法开发语言
质数(primenumber)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。实例#includeintmain(){intn,i,flag=0;printf("输入一个正整数:");scanf("%d",&n);for(i=2;iintmain(){intlow,high,i,flag;printf("输入两个整数:");scanf("%d%
- C语言实例_20之回文数计算
FreeLikeTheWind.
C语言实例c语言开发语言c++算法
1.题目判断一个5位数是否为回文数。回文数的特点是个位与万位相同,十位与千位相同,例如13531是回文数。2.分析要判断一个5位数是否为回文数,关键在于比较其个位与万位、十位与千位上的数字是否分别相等。可以通过数学运算提取出该5位数各个数位上的数字,然后进行相应的比较操作来得出结论。3.实例代码实现方式一:直接提取数位比较#includeintmain(){intnum=0;printf("请输入
- C语言判断一个数是否是素数(三种方法)
CHEN5_02
c语言算法开发语言
首先先了解什么是素数素数(质数):质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。简单来说就是这个数只能被1和它本身整除方法一:从2到n-1遍历判断是否存在能使其整除的数,若存在则不是素数。代码实现:下面展示一些内联代码片。#includeintmain(){intn;printf("请输入一个数:");scanf("%d",&n);intflag=1;//定义一个标记fla
- 万字解析:从 C 语言到初阶数据结构
Aurora-silas
c语言数据结构开发语言
目录万字解析:从C语言到初阶数据结构前言第一章:C语言初识与环境搭建C语言的历史与影响开发工具介绍第一个程序HelloWorld第二章:变量、数据类型与运算符基本数据类型常量与变量命名规范运算符与表达式趣味小练习:BMI计算器第三章:输入输出与格式化printf输出格式详解scanf输入用法与常见问题小项目:自我介绍程序第四章:流程控制if/else条件判断switch语句循环结构小练习:乘法口诀
- 【无标题】
函数传参的性质性质一:在C语言中,函数传参是值传递,传递的是实参的副本(值的拷贝),而非实参本身。若需通过函数修改外部变量,需传递变量的地址(指针),本质仍是对地址值的拷贝,通过指针间接访问并修改原变量。#includevoidfoo(intn){n+=10;}intmain(void){inti=20;foo(i);printf("%d\n",i);return0;}该程序输出结果为30,因为在
- 计算多个鞋尺码对应的英尺长度
小风xf
#include#defineADJUST7.64#defineSCALE0.325voidmain(){doubleshoe,foot;shoe=3.0;printf("shoesize(men's)footlenth\n");while(shoe<18.5){foot=SCALE*shoe+ADJUST;printf("%10.1f%15.2finches\n",shoe,foot);shoe
- 指针的分析与理解
慈悲不渡自绝人
数据结构c语言c++单片机stm3251单片机
指针的分析与理解inta=5;printf("a的地址为:%p,a的值为:%d\n",&a,a);其中&a指的是变量a在内存中的地址,a是变量的值。&是取值符号。1.关于指针的理解inta=5;int*p;//p是未初始化的指针,指向随机内存地址*p=a;//试图将a的值写入p指向的随机地址(危险!)分析这段错误的代码不要以为声明指针后就可以直接使用,必须需要先让指针指向有效的内存区域。比如用p=
- c语言的数据类型和变量(下)
秃然想通
c语言c语言算法开发语言
目录二、scanf和printf2.1.2占位符2.1.3占位符例举2.1.4输出格式2.1.4.1限定宽度2.1.4.3限定小数位数2.1.4.4输出部分字符串2.2、scanf一、强制类型转换在操作符中还有一种特殊的操作符是强制类型转换,语法形式很简单,形式如下:1、(类型)代码如下:inta=3.14;//a的是int类型,3.14是double类型,两边的类型不一致,编译器会报警告为了消除
- freertos关键函数理解 uxListRemove
dddddppppp123
算法
//删除pxItemToRemove节点UBaseType_tuxListRemove(ListItem_t*pxItemToRemove){//Thelistitemknowswhichlistitisin.Obtainthelistfromthelistitem.//找到节点所在的链表//my_printf("uxListRemovepxItemToRemove=%#p\n",pxItemTo
- 【通识】C语言
Alla T
c语言算法开发语言
1.常用小技巧判断a和b的哪个最大:max(a,b)=a>b?a:b;从标准输入(键盘)读取一个字符:getchar()#includeintmain(){intc;printf("请输入一行文字(按回车结束):\n");while((c=getchar())!='\n'&&c!=EOF){putchar(c);//逐个输入字符}return0;}12.案例1#includeintmain(){c
- C语言数组名是首元素地址还是数组的地址?
code改变世界
Cc语言算法开发语言
C语言数组名是首元素地址还是数组的地址?在C语言中数组名代表的是首元素地址,只有两种情况下不是。1.&数组名#includeintmain(){intarr[10]={1,2,3,4,5,6,7,8,9,10};//1.//正常情况下数组名代表的是首元素地址printf("%d\n",arr==&arr[0]);//1//数组名是首元素的地址printf("%p\n",arr);printf("%
- C语言交换两个数的三种方法
code改变世界
Cc语言学习
C语言交换两个数 使用临时变量交换。#includeintmain(){inta=10;intb=20;inttemp=a;a=b;b=temp;printf("%d%d",a,b);//2010return0;} 不使用临时变量交换。#includeintmain(){inta=10;intb=20;a=a+b;b=a-b;a=a-b;printf("%d%d",a,b);//2010ret
- 【C语言练习】067. 编写代码处理不同数据类型的输入输出
视睿
从零开始学习机器人c语言开发语言数据结构算法排序算法机器人
067.编写代码处理不同数据类型的输入输出067.编写代码处理不同数据类型的输入输出printf和scanf的基本功能格式化字符串的差异参数传递方式返回值含义常见问题与注意事项安全性对比性能影响使用更安全的函数使用格式化I/O库使用文件描述符直接操作使用自定义解析器注意事项1.基本数据类型的输入输出1.1整数类型1.2浮点数类型1.3字符类型1.4字符串类型2.复合数据类型的输入输出2.1结构体类
- linux重定向printf,printf和fprintf及用freopen()进行重定向
除了人工的分析之外,最简单最直接的调试方法要算printf了。不过,我们这里推荐使用的并不是初学C语言时使用的函数intprintf(constchar*format,...),而是稍微复杂一点的fprintf()函数,因为它更方便我们之后重定向错误输出信息到指定的设备。fprintf()函数的原型如下:intfprintf(FILE*stream,constchar*format,...)可以看
- 预处理命令与指针基础
不懂机器人
算法
1.预处理命令gcc-E-----只做预处理,不进行编译;预处理阶段会将所有宏名用其内容替换(只做简单替换)宏:(1)不带参宏:defineN4;(2)代参宏:defineadd(a,b,c)((a)+(b)+(c))eg1:#include#defineN100#defineadd(a,b,c)((a)+(b)+(c))intmain(void){printf("%d\n",N);printf(
- Golang学习笔记--语言入门【Go-暑假学习笔记】
天生不爱笑
golang学习笔记
目录基础语法部分相关概念基础语法部分概念详解可见性导包内部包运算符转义字符函数风格函数花括号换行代码缩进代码间隔花括号省略三元表达式数据类型部分相关概念数据类型部分概念详解布尔类型整型浮点型复数类型字符类型派生类型零值nil常量初始化iota枚举变量声明赋值匿名交换比较代码块输入输出输出stdoutprintfmtbufio格式化输入readfmtbufiobufio.Readerbufio.Sc
- 41、C语言函数进阶:递归、可变参数与main函数
h0i1j2k3l
C语言编程:从入门到精通C语言递归函数可变参数函数
C语言函数进阶:递归、可变参数与main函数1.递归函数递归是指函数调用自身的过程。不过,在实际编程中,我们并不经常会用到递归。但在某些特定的场景下,递归能极大地简化代码,帮助我们解决复杂的问题。当一个函数调用自身时,首要解决的问题就是如何让这个调用过程停止。下面是一个简单的无限循环示例:voidLooper(void){printf("Looperfunctioncalled.\n");Loop
- C语言刷题第一章
乞丐1469
C语言刷题学习c语言开发语言算法
1.题目一:实践出真知①题目描述:于老师经常告诉我们"学习编程最好的办法就是上机实践,因为你要对计算机下指令,想让计算机帮你干活,就得多和计算机‘交流”,实践才能出真知。”②输入描述:无③输出描述:Practicemakesperfect!④代码实践:#include//引入printf的头文件intmain()//写出主函数{printf("Practicemakesperfect!");//函
- C语言程序设计
Twinkle175
c#
一、逗号运算符和逗号表达式定义:形如3+5,6+8,利用逗号将两个表达式连接起来,称为逗号表达式,又称为“顺序求值运算符”。当多个逗号表达式赋一个值时,其输出结果为最后一个表达式,但由于逗号运算符时级别最低的,因此,需要结合其他运算符的优先级进行具体分析。如以下两个表达式:1:intt;t=1+3,2*4,5/2;printf("%d\n",t);//其输出结果为4。(因为求和的优先级高于逗号表达
- C语言:作用域、生存期与多文件工程化开发
一、二维数组作为函数参数当二维数组作为函数参数时,需要两个参数(inta[][4],introws);其中,在定义数组时,其列数必须赋值,不能省略。例如:voidprintfArray(inta[][4],introws)二、标识符的作用域与可见性1.作用域(1).局部作用域:变量定义在函数或代码模块(如:if,for等)内,仅在该范围有效,出范围则“失效”。其中,函数形参也属于局部作用域。(2)
- golang的基本数据类型转string,string转基本数据类型
澡点睡觉
golang后端
基本数据类型转string方法一fmt.Sprintf(“%参数”,表达式)以int8类型转string为例:funcmain(){varnint8=2varb=fmt.Sprintf(“%d”,n)fmt.Printf(“%T,%v”,b,b)}输出结果为:string,2方法二调用strconv包的函数funcmain(){varaint8=2varc=strconv.FormatInt(in
- 编写一个程序,输入任意两个整数,求出他们的商和余数,并输出
EchoRain_ProMax
c算法c语言c++算法
由题意可知,需要两个变量记录输入两个的整数,一个变量存放两个数的相除,用两个变量复制前两个变量代码:#includeintmain(){inti,j,k,aus=0;printf("请输入两个整数:");scanf("%d%d",&i,&j);k=i%j;inti1=i,j1=j;while(i>0){aus++;i=i-j;}//%SystemRoot%\System32\cmd.exeif(i
- C语言十进制转八进制、十六进制
xqj922
C语言c语言开发语言算法
原理:十进制数除以8(16)反向取余,直至商为0。代码:#include//十进制转八进制intmain(){inta=1234;inty=1;//位数intx=0;//八进制数while(a!=0){x+=(a%8)*y;//计算的值是八进制得数a/=8;//商y*=10;//位置更新}printf("0%d\n",x);return0;}使用格式控制串“%o”、“%X”代码如下:#includ
- c语言十进制数转二进制数
不掉头发的程序猿_
BSP学习笔记c语言算法
#include#defineN8//固定位数intmain(){intarr[N]={0};//将数组初始化为0(位数不满时,将输出0填补)inti;intn;printf("请输入一位整数:\n");scanf("%d",&n);for(i=N-1;i>=0;i--)//对数组从后往前赋值{arr[i]=n%2;n/=2;}printf("该值转化为二进制数输出为(8位):");for(i=0
- C语言十进制转十六进制
云雾栀子青,
算法c语言学习
十进制转十六进制#includeintmain(){intn,i=0,j;chara[100];scanf("%d",&n);if(n==0)printf("%d",n);else{while(n!=0){switch(n%16){case0:a[i]='0';break;case1:a[i]='1';break;case2:a[i]='2';break;case3:a[i]='3';break;
- c练习-c基础
不想学习\??!
算法数据结构
#includeintmain(){//打印数组中的最大值intarr[10];intmax,i;for(i=0;iintmain(){//交换数组中的数据逆数组intarr[10];inti,t;intn=sizeof(arr)/sizeof(int);printf("请输入10个数据\n");for(i=0;iintmain(){//数组中的数据排大小intarr[10];inti,t,j;t
- C语言:函数调用
Day12-C语言函数函数的调用定义函数不允许嵌套定义,但可以嵌套调用正确示例:函数嵌套调用voida(){...}//函数的嵌套调用voidb(){a();}intmain(){printf(...);}错误示例:函数嵌套定义//函数的嵌套定义voida(){voidb(){...}}**嵌套调用:**在被调函数内又主动去调用其他函数,这样的函数调用形式,称之为嵌套调用。案例案例1:需求:编写一
- Go语言实战案例-简易日志记录器
案例目标实现一个能够向本地文件写入日志的简易记录器,掌握Go中如何打开/创建文件、以追加方式写入文本,并附加时间戳。应用场景•日志记录系统运行状态或用户行为•错误日志追踪•服务器输出日志写入本地文件涉及知识点•使用os.OpenFile()打开或创建文件•使用time.Now()获取当前时间•使用fmt.Fprintf()向文件写入格式化内容•使用defer关闭文件资源示例代码package ma
- 浙大版《C语言程序设计(第四版)》题目集答案
wenxianjj
c语言开发语言
1.实验1-1helloworld本题要求编写程序,输出一个短句“HelloWorld!”。输入格式:本题目没有输入。输出格式:在一行中输出短句“HelloWorld!”。intmain(){printf("HelloWorld!");return0;}
- JVM StackMapTable 属性的作用及理解
lijingyao8206
jvm字节码Class文件StackMapTable
在Java 6版本之后JVM引入了栈图(Stack Map Table)概念。为了提高验证过程的效率,在字节码规范中添加了Stack Map Table属性,以下简称栈图,其方法的code属性中存储了局部变量和操作数的类型验证以及字节码的偏移量。也就是一个method需要且仅对应一个Stack Map Table。在Java 7版
- 回调函数调用方法
百合不是茶
java
最近在看大神写的代码时,.发现其中使用了很多的回调 ,以前只是在学习的时候经常用到 ,现在写个笔记 记录一下
代码很简单:
MainDemo :调用方法 得到方法的返回结果
- [时间机器]制造时间机器需要一些材料
comsci
制造
根据我的计算和推测,要完全实现制造一台时间机器,需要某些我们这个世界不存在的物质
和材料...
甚至可以这样说,这种材料和物质,我们在反应堆中也无法获得......
 
- 开口埋怨不如闭口做事
邓集海
邓集海 做人 做事 工作
“开口埋怨,不如闭口做事。”不是名人名言,而是一个普通父亲对儿子的训导。但是,因为这句训导,这位普通父亲却造就了一个名人儿子。这位普通父亲造就的名人儿子,叫张明正。 张明正出身贫寒,读书时成绩差,常挨老师批评。高中毕业,张明正连普通大学的分数线都没上。高考成绩出来后,平时开口怨这怨那的张明正,不从自身找原因,而是不停地埋怨自己家庭条件不好、埋怨父母没有给他创造良好的学习环境。
- jQuery插件开发全解析,类级别与对象级别开发
IT独行者
jquery开发插件 函数
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给
jQuery添加新的全局函数,相当于给
jQuery类本身添加方法。
jQuery的全局函数就是属于
jQuery命名空间的函数,另一种是对象级别的插件开发,即给
jQuery对象添加方法。下面就两种函数的开发做详细的说明。
1
、类级别的插件开发 类级别的插件开发最直接的理解就是给jQuer
- Rome解析Rss
413277409
Rome解析Rss
import java.net.URL;
import java.util.List;
import org.junit.Test;
import com.sun.syndication.feed.synd.SyndCategory;
import com.sun.syndication.feed.synd.S
- RSA加密解密
无量
加密解密rsa
RSA加密解密代码
代码有待整理
package com.tongbanjie.commons.util;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerat
- linux 软件安装遇到的问题
aichenglong
linux遇到的问题ftp
1 ftp配置中遇到的问题
500 OOPS: cannot change directory
出现该问题的原因:是SELinux安装机制的问题.只要disable SELinux就可以了
修改方法:1 修改/etc/selinux/config 中SELINUX=disabled
2 source /etc
- 面试心得
alafqq
面试
最近面试了好几家公司。记录下;
支付宝,面试我的人胖胖的,看着人挺好的;博彦外包的职位,面试失败;
阿里金融,面试官人也挺和善,只不过我让他吐血了。。。
由于印象比较深,记录下;
1,自我介绍
2,说下八种基本类型;(算上string。楼主才答了3种,哈哈,string其实不是基本类型,是引用类型)
3,什么是包装类,包装类的优点;
4,平时看过什么书?NND,什么书都没看过。。照样
- java的多态性探讨
百合不是茶
java
java的多态性是指main方法在调用属性的时候类可以对这一属性做出反应的情况
//package 1;
class A{
public void test(){
System.out.println("A");
}
}
class D extends A{
public void test(){
S
- 网络编程基础篇之JavaScript-学习笔记
bijian1013
JavaScript
1.documentWrite
<html>
<head>
<script language="JavaScript">
document.write("这是电脑网络学校");
document.close();
</script>
</h
- 探索JUnit4扩展:深入Rule
bijian1013
JUnitRule单元测试
本文将进一步探究Rule的应用,展示如何使用Rule来替代@BeforeClass,@AfterClass,@Before和@After的功能。
在上一篇中提到,可以使用Rule替代现有的大部分Runner扩展,而且也不提倡对Runner中的withBefores(),withAfte
- [CSS]CSS浮动十五条规则
bit1129
css
这些浮动规则,主要是参考CSS权威指南关于浮动规则的总结,然后添加一些简单的例子以验证和理解这些规则。
1. 所有的页面元素都可以浮动 2. 一个元素浮动后,会成为块级元素,比如<span>,a, strong等都会变成块级元素 3.一个元素左浮动,会向最近的块级父元素的左上角移动,直到浮动元素的左外边界碰到块级父元素的左内边界;如果这个块级父元素已经有浮动元素停靠了
- 【Kafka六】Kafka Producer和Consumer多Broker、多Partition场景
bit1129
partition
0.Kafka服务器配置
3个broker
1个topic,6个partition,副本因子是2
2个consumer,每个consumer三个线程并发读取
1. Producer
package kafka.examples.multibrokers.producers;
import java.util.Properties;
import java.util.
- zabbix_agentd.conf配置文件详解
ronin47
zabbix 配置文件
Aliaskey的别名,例如 Alias=ttlsa.userid:vfs.file.regexp[/etc/passwd,^ttlsa:.:([0-9]+),,,,\1], 或者ttlsa的用户ID。你可以使用key:vfs.file.regexp[/etc/passwd,^ttlsa:.: ([0-9]+),,,,\1],也可以使用ttlsa.userid。备注: 别名不能重复,但是可以有多个
- java--19.用矩阵求Fibonacci数列的第N项
bylijinnan
fibonacci
参考了网上的思路,写了个Java版的:
public class Fibonacci {
final static int[] A={1,1,1,0};
public static void main(String[] args) {
int n=7;
for(int i=0;i<=n;i++){
int f=fibonac
- Netty源码学习-LengthFieldBasedFrameDecoder
bylijinnan
javanetty
先看看LengthFieldBasedFrameDecoder的官方API
http://docs.jboss.org/netty/3.1/api/org/jboss/netty/handler/codec/frame/LengthFieldBasedFrameDecoder.html
API举例说明了LengthFieldBasedFrameDecoder的解析机制,如下:
实
- AES加密解密
chicony
加密解密
AES加解密算法,使用Base64做转码以及辅助加密:
package com.wintv.common;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.BASE64Decod
- 文件编码格式转换
ctrain
编码格式
package com.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
- mysql 在linux客户端插入数据中文乱码
daizj
mysql中文乱码
1、查看系统客户端,数据库,连接层的编码
查看方法: http://daizj.iteye.com/blog/2174993
进入mysql,通过如下命令查看数据库编码方式: mysql> show variables like 'character_set_%'; +--------------------------+------
- 好代码是廉价的代码
dcj3sjt126com
程序员读书
长久以来我一直主张:好代码是廉价的代码。
当我跟做开发的同事说出这话时,他们的第一反应是一种惊愕,然后是将近一个星期的嘲笑,把它当作一个笑话来讲。 当他们走近看我的表情、知道我是认真的时,才收敛一点。
当最初的惊愕消退后,他们会用一些这样的话来反驳: “好代码不廉价,好代码是采用经过数十年计算机科学研究和积累得出的最佳实践设计模式和方法论建立起来的精心制作的程序代码。”
我只
- Android网络请求库——android-async-http
dcj3sjt126com
android
在iOS开发中有大名鼎鼎的ASIHttpRequest库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,目前非常火的应用Instagram和Pinterest的Android版就是用的这个网络请求库。这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库,网络处理均基于Android的非UI线程,通
- ORACLE 复习笔记之SQL语句的优化
eksliang
SQL优化Oracle sql语句优化SQL语句的优化
转载请出自出处:http://eksliang.iteye.com/blog/2097999
SQL语句的优化总结如下
sql语句的优化可以按照如下六个步骤进行:
合理使用索引
避免或者简化排序
消除对大表的扫描
避免复杂的通配符匹配
调整子查询的性能
EXISTS和IN运算符
下面我就按照上面这六个步骤分别进行总结:
- 浅析:Android 嵌套滑动机制(NestedScrolling)
gg163
android移动开发滑动机制嵌套
谷歌在发布安卓 Lollipop版本之后,为了更好的用户体验,Google为Android的滑动机制提供了NestedScrolling特性
NestedScrolling的特性可以体现在哪里呢?<!--[if !supportLineBreakNewLine]--><!--[endif]-->
比如你使用了Toolbar,下面一个ScrollView,向上滚
- 使用hovertree菜单作为后台导航
hvt
JavaScriptjquery.nethovertreeasp.net
hovertree是一个jquery菜单插件,官方网址:http://keleyi.com/jq/hovertree/ ,可以登录该网址体验效果。
0.1.3版本:http://keleyi.com/jq/hovertree/demo/demo.0.1.3.htm
hovertree插件包含文件:
http://keleyi.com/jq/hovertree/css
- SVG 教程 (二)矩形
天梯梦
svg
SVG <rect> SVG Shapes
SVG有一些预定义的形状元素,可被开发者使用和操作:
矩形 <rect>
圆形 <circle>
椭圆 <ellipse>
线 <line>
折线 <polyline>
多边形 <polygon>
路径 <path>
- 一个简单的队列
luyulong
java数据结构队列
public class MyQueue {
private long[] arr;
private int front;
private int end;
// 有效数据的大小
private int elements;
public MyQueue() {
arr = new long[10];
elements = 0;
front
- 基础数据结构和算法九:Binary Search Tree
sunwinner
Algorithm
A binary search tree (BST) is a binary tree where each node has a Comparable key (and an associated value) and satisfies the restriction that the key in any node is larger than the keys in all
- 项目出现的一些问题和体会
Steven-Walker
DAOWebservlet
第一篇博客不知道要写点什么,就先来点近阶段的感悟吧。
这几天学了servlet和数据库等知识,就参照老方的视频写了一个简单的增删改查的,完成了最简单的一些功能,使用了三层架构。
dao层完成的是对数据库具体的功能实现,service层调用了dao层的实现方法,具体对servlet提供支持。
&
- 高手问答:Java老A带你全面提升Java单兵作战能力!
ITeye管理员
java
本期特邀《Java特种兵》作者:谢宇,CSDN论坛ID: xieyuooo 针对JAVA问题给予大家解答,欢迎网友积极提问,与专家一起讨论!
作者简介:
淘宝网资深Java工程师,CSDN超人气博主,人称“胖哥”。
CSDN博客地址:
http://blog.csdn.net/xieyuooo
作者在进入大学前是一个不折不扣的计算机白痴,曾经被人笑话过不懂鼠标是什么,