- 博客(22)
- 资源 (5)
- 收藏
- 关注
转载 浮点数比较大小的问题(转载)
浮点数比较大小,由于精度问题,所以直接比较有时可能会出错。单精度数7位有效数字。 (float)双精度数16位有效数字。(double)单精度数的尾数用23位存储,加上默认的小数点前的1位1,2^(23+1) = 16777216。因为 10^7 < 16777216 < 10^8,所以说单精度浮点数的有效位数是7位。 双精度的尾数用52位存储,2^(52+1) = 900...
2019-07-26 10:54:59 967
转载 同步异步、阻塞非阻塞
文章转自:https://www.cnblogs.com/Anker/p/5965654.html博主的结论不敢确定,但是文章中的很多观点很有用linux网络IO中涉及到如下模型:(1)阻塞式IO(2)非阻塞式IO(3)IO多路复用(4)信号驱动IO(5)异步IO在知乎上面看到一些解释如下:截图如下:3、总结 同步和异步...
2018-08-10 16:46:00 227
转载 const与函数重载的关系
本文转自https://www.cnblogs.com/qingergege/p/7609533.htmlconst到底是不是一个重载的参考对象,请看下面的例子class A{public: void f(int i){ std::cout<<"1";}; //函数1 void f(int i) const { std::cout<<"2" ;};//函数2};...
2018-06-18 23:38:05 1552 2
转载 结构体内存对其原则
原则1、数据成员对齐规则:结构(struct或联合union)的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储)。原则2、结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储。(struct a里存有struct b,b里有ch...
2018-05-06 23:00:18 196
原创 sizeof()与strlen的区别
strlen与sizeof的区别:sizeof是一个运算符,用来计算数据类型的大小;strlen是计算字符串有效长度的。srlen能够计算字符串的长度,但是不可以计算字符数组的长度。例如:char ch1[] = "123456";char ch2[] = {'1','2','3','4'};int value1 = strlen(ch1);int value2 = strlen(ch2);pri...
2018-04-13 22:16:23 227
原创 值传递
int fun(a){ //2、也就是说a=30 a = 10; //3、此时将a重新赋值为10,而不是第一次理解的30=10。 return a;}int main(){ int b = 30; int c=fun(b); //1、第一步将参数赋值为30, printf("%d\n",c);}...
2018-04-08 15:58:42 114
原创 初识缓冲区
1.默认情况下,程序没有结束,也没有关闭文件,缓冲区满了以后自动刷新缓冲区2.文件正常关闭(fclose()),缓冲区内容也会写进文件3.文件布关闭,程序没有结束,实时刷新,调用fflush也可以将缓冲区内容写进文件4.程序正常关闭,缓冲区内容也会写进文件。fflush()函数可以强制刷新缓冲区,即使缓冲区未满,数据也可以写入文件中。但是这样做会降低效率...
2018-04-08 14:02:08 162
原创 scanf gets fgets printf puts fputs区别
输入:scanf("%c",&a)这个是可以读取空格的。 scanf("%s",a)这个不可以读取空格、回车,遇到空格回车结束读取,并在结尾添加\0。注意预留一个位置给\0。 gets(str),可以读取空格,注意预留一个位置给\0。 scanf与gets都不做越界检查,不安全 fgets(s,int size,stdin): 从strea...
2018-04-08 13:53:31 397
原创 short a =0xfffe; printf("%x",a);打印问题
unsigned short a = 0xfffe;printf("%x",a); 打印结果为fffeshort a = 0xfffe;printf("%x",a); 打印结果为fffffffe,为何会产生这样的差异?查看https://stackoverflow.com/questions/26392736/sign-extension-query-in-case-of-short的回答可以...
2018-04-05 20:53:52 2139
转载 printf输出格式总结
1) 整数%d 整数的参数会被转成有符号的十进制数字%u 整数的参数会被转成无符号的十进制数字%o 整数的参数会被转成无符号的八进制数字%x 整数的参数会被转成无符号的十六进制数字,并以小写abcdef 表示%X 整数的参数会被转成无符号的十六进制数字,并以大写ABCDEF 表示浮点型数%f double 型的参数会被转成十进制数字,并取到小数点以下六位,四舍五入%e double ...
2018-02-09 13:09:31 1012
原创 &和*的区别
变量a 本质上代表一个存储单元。CPU通过该存储单元的地址访问该存储单元中的数据。所以a本来代表两个值:存储单元的地址和储单元中的数据。于是就有了二异性。为了消除这种二义性,C语言规定a表示存储单元中的数据,&a表示存储单元的地址。a存储单元中的数据可以是一个普通数值,也可以是另一个存储单元的地址,比如:a = &b; 语句就是将b的存储单元的地址存入a存储单元中。C语言规定*a代表a中存储的
2018-02-07 01:20:02 4056 1
转载 &与*的区别
变量a 本质上代表一个存储单元。CPU通过该存储单元的地址访问该存储单元中的数据。所以a本来代表两个值:存储单元的地址和储单元中的数据。于是就有了二异性。为了消除这种二义性,C语言规定a表示存储单元中的数据,&a表示存储单元的地址。a存储单元中的数据可以是一个普通数值,也可以是另一个存储单元的地址,比如:a = &b; 语句就是将b的存储单元的地址存入a存储单元中。C语言规定*a代表a中存储的
2018-02-07 00:54:41 2224 2
转载 Vim中安装Taglist教程
将vim 改造成功能强大的IDE系列之二『插件介绍』Taglist是vim的一个插件,提供源代码符号的结构化视图。效果图:(直接使用了别人的图片。在我机器上也差不多~) 『下载和安装』 1)从http://www.vim.org/scripts/script.php?script_id=273下载安装包,也可以从http://
2018-01-30 17:49:46 1356
原创 scanf("%d\n",&a);中\n带来的问题的解释
第一次输入数字+回车,这个回车被编译器默认为分隔符,相当于scanf()只接受了“%d”,与其格式不匹配,继续要求你输入数据,当第二次随便输入一个数据之后,按下回车,这时编译器知道第一个回车不是分隔符,而是需要的匹配的格式。补充:scanf("%c",&a);当输入字符的时候,我们按下任意字符 + 回车的时候,回车没有被当作为分隔符,而是作为一个转义字符与输入的字符一起保存在缓存区。第
2018-01-29 14:50:19 7300
原创 scanf为什么要取地址,而不直接使用变量名
参考这个回答。int a;scanf("%d",&a);采用取地址是为了改变a的值,按照上述回答可以知道,若采用变量名a,a的值仅在scanf这个函数中发生改变,函数之外的a值没有变化,也就是说a的值并不是最终键盘上输入的值。为了让a的值发生彻底待变,需要在scanf()函数中采用取地址值让a的值发生改变。
2018-01-27 00:03:47 5388 2
转载 -128的补码解释
作者:何新宇链接:https://www.zhihu.com/question/20159860/answer/21113783来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。以前写过一篇blog:补码、负数和减法,尽管不是很对题,但依然希望能给题主带来帮助---背景复习c++的时候遇到二进制编码问题,上网搜索了
2018-01-22 17:12:55 13339 6
转载 c/c++ 头文件
一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是
2018-01-22 17:01:57 489
转载 instanceof用法
Java代码 interface A{ } class B implements A{ } class C extends B{ } public class Iinstanceof { public static void main(String[] args) {
2017-09-05 16:01:39 264
转载 强制类型转换
在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。
2017-09-02 22:27:23 168
转载 普通代码块,静态代码块,构造代码块的区别
执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块>构造方法。其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。1 普通代码块 1 //普通代码块:在方法或语句中出现的{}就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行” 2 public class CodeBlock01{ 3
2017-08-31 14:54:04 271 1
转载 myelipse调试及step into/over/return的区别
首先来讲一下step into step over step return的区别:step into就是单步执行,遇到子函数就进入并且继续单步执行;(F5)step over是在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。(F6)step return就是单步执行到子函数内时,用step return就可以执行完子
2017-08-31 12:28:29 350
C/C++ 控制MAC系统音量
2019-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人