产品网站建设,wordpress能做几个域名的301,西安企业免费建站,上海做网站设计由于c里面有很多和c语言很像的东西#xff0c;这里就来总结一点不像的或者要注意的#xff0c;或者是我已经快忘记的#xff1b;
先来一个浮点型也就是实型类型的总结#xff1b;
知道浮点型有这两个类型#xff1a;float和double型#xff1b;
然后float型占四个字节…由于c里面有很多和c语言很像的东西这里就来总结一点不像的或者要注意的或者是我已经快忘记的
先来一个浮点型也就是实型类型的总结
知道浮点型有这两个类型float和double型
然后float型占四个字节精度为7位有效数字注意有效数字不只是小数点后面的是整个数有多少位double占八个字节精度为15~16位有效数字然后我心血来潮地用这两个类型来输出3.1415926以显示它们的区别但是
#includeiostream
using namespace std;
int main()
{float f1 3.1415926;double f2 3.1415926;cout f1 endl f2 endl;system(pause);return 0;
} 后来知道原来一般情况下输出一个小数只会输出六位有效数字不管哪种类型QAQ
还有一点要注意的是
默认情况下编译器将小数当作双精度类型也就是精度更高的double类型所以在定义一个float型变量给它赋值小数的时候这时候那个小数其实是双精度编译器会先将它转换为单精度类型再进行赋值操作不同类型的是不可以赋值的所以这里有一个小技巧同时也是为了看懂这个句子
float f3.12f;
不会吧不会吧不会有人会认为这里的f是同一个f吧不会还有人差点要把它约掉吧说的就是自己其实这里就是定义一个变量名为f的float变量给他赋值3.12;这个小数后面加了个f指的是编译器刚开始就将它当作了单精度从而不需要在定义的时候多一步转换然后我又试了一下会不会在小数的后面加一个d就是直接认为单精度呢然后就报错了现在想想也是刚开始编译器就已经把小数当作双精度类型了还要转换什么吗
然后还了解一个科学计数法
在c语言里面
有时候由于一个数太大或者太小很麻烦这时候如果这个数里面有这样的特点就可以用科学计数法
某个数后面有很多个连续的零小数点后面有很多连续的零形如
1230000000
0.000004
这时候就可以用科学计数法写成1.23e92e-6也就是在e后面为正的话e后面几个零就相当于10的几次方而为负的话就是相当于0.1的几次方但是在一定限度下计算机打印会自动将科学计数法转换为正常的形式但是如果超过一定限度就会直接显示如果是正数就还会再加一个加号只不过还可以正常加减但是这在超过一定限度连正常加减都不可以了其实不是不可以只是显示错误好像和位运算什么的有关暂时不深入
下面可以验证
#includeiostream
using namespace std;
int main()
{float f1 3e-6;float f2 3e-5;double f3 3e-5;double f4 3e-6;float f5 3e-4;double f6 3e-4;cout f1 endlf11 endlf2endl f21 endl;cout f3 endl f3 1 endl f4 endl f4 1 endl;cout f5 endl f5 1 endl f6 endl f6 1 endl;system(pause);return 0;
}结果是这样的
可以发现在科学计数法里面 然后再来看正数也就是把刚刚的代码的负号去掉 这就很那个只打印六个有效数字一样而之所以超过了那个限度但是又没有到double的限度为什么不能计算出正确答案好像涉及一个比较深入的知识打印的时候位转换这里我只是想提醒一下自己 如果这个是正的话可以用整型范围可能比这个要大一点最大可以弄到它的最大范围虽然有时候整型打印也会出现打印的字节地方出错但是这里没有问题
然后再来复习一下字符类型
字符类型char占用一个节点且字符型变量并不是将字符本身放进内存而是将其对应的ASCII码放进内存当然还有转换等后续操作字符型变量用单引号在ASCII码中0~31给了控制字符32~126才给课可以显示的字符还有就是两个要记得a的ASCII码是97A是65
再来介绍几个比较重要的转义字符
//这个表示注释也就是可以让编译器忽略它后面的一整行
\\这个表示斜杠在c和c里面想要打印斜杠只用一个是会报错的也就是说编程里面编译器看见一个斜杠就会开始之后要有转义字符出现了像\n是换行但是单个n只是一个字母这里\n在c里面的作用和endl类似都是换行但是输出的方式不一样所以可以把单个斜杠认为一个信号所以要输出斜杠的话在变成里面就应该用两个这时候我就想到了这个 也就是说在编译器的认知我只是向输出一个斜杠一个引号也就是/“ 而且还少打一个引号用来输出还是看代码更好理解 也就是说在中文里面除了字符其他符号想要正常输出都要加一个斜杠
然后就是一些换行符这里换行符的作用和endl(虽然我这个也不是很明白先只浅浅了解一下)一样只是方式不一样
#includeiostream
#includestring
using namespace std;
int main()
{cout hello\n;cout hello endl;cout hello;system(pause);return 0;
}还有一个水平制表符\t之前都只知道它可以让格式变整齐现在才知道其实它是这样的原理
对于数字数字或者字符都认定为8的倍数为一个整体剩余的都用空格来添上这样不仅可以尽量使数据变得很整齐还可以让我们想输出一组数又懒得打空格的时候方便使用
#includeiostream
#includestring
using namespace std;
int main()
{cout hello\t123456\tfsfsfsfssf\tendl;cout hello434\teqefec\tdfsfs\tendl;system(pause);return 0;
}这里来浅浅解释一下这个刚开始hello是5个地方所以剩下三个空格打印出来到它后面123456占6个地方后面还有两个地方但因为空格然后fsfsfsfssf占了十个地方这时候八个已经不能满足它了所以扩充为16个剩下6个地方打印为空格这里后面因为没有了所以不明显下面的就懒得分析了。。。
这里再介绍一个类型string字符串型也就是每次要用这个之前记得加上头文件#includestring这里它的位置没有特别要求可以放在#includeiostream下面也可以是上面在using namespace std上面下面都可以当然这里说的随便还是要符合正常头文件放的位置然后就是它的应用实例
#includeiostream
#includestring
using namespace std;
int main()
{string s hello;cout s endl;system(pause);return 0;
}正常打印出来了 别在年轻的时候 吃得最胖活得最懒爱得最傻 一生中最好的年轻 都是一晃而过的愿你能用心享受它。