c++学习笔记
来源:互联网 发布:windows安装光盘多少钱 编辑:程序博客网 时间:2024/06/08 15:58
数据运算
混合运算的类型转换
当运算符两边的操作数类型不同但类型相容时,系统自动将不同的数据类型转换成相同类型,再进行运算。
具体规则如下:
- 字符可作为整数参与运算,整数值为其ASCII码。
- 对于字符或短整型操作数,系统自动变换成整型。
- 对于单精度型操作数时,系统自动变换成双精度型。
- 当两操作数类型不同时,将精度低(或表示范围小)的操作数的数据类型变换成与另一操作数类型相同,再进行运算。
例如,设有变量:
char c1, c2;int i1, i2;float x1, x2;
则表达式 x2=c1*i1+c1*x1+c1*c2 的求值过程为:
将c1转换成整型,完成c1\*i1,结果为t1; 将c1和x1转换成双精度型,完成c1\*x1,结果为t2; 将c1和c2均转换成整型,完成c1*c2,结果为t3; 将t1转换成双精度型,完成t1+t2,结果为t4; 将t3转换成双精度型,完成t4+t3; 最后结果转化为单精度型,赋给x2。
浮点数取整
- 强制取整,如int a = 2.5; 或 int a = (int)2.5; 这两种方法都是直接舍弃小数点
- floor(),下取整,向负无穷大舍入,如floor(2.5) = 2; floor(-2.5) = -3;
- ceil(),上取整,向正无穷大舍入,如floor(2.5) = 3; floor(-2.5) = -2;
< climits >
这个头文件下基本都是常用数值的宏定义,主要是不同的变量的最大值和最小值
数字和字符串的相互转换
char[] 转 数字
#incldue <cstdlib>double atof (const char* str);int atoi (const char * str);long int atol ( const char * str );long long int atoll ( const char * str );float strtof (const char* str, char** endptr); /* endptr 用来存储该字符串空格的子串,也可以为 NULL, 如: char a[] = "1234.5678 1.2"; char *b; float c = strtof(a, &b); printf("%f\n%s\n",c,b); 输出结果: 1234.567749 1.2*/long double strtold (const char* str, char** endptr);long long int strtoll (const char* str, char** endptr, int base);/* base 为转译后的进制, base = 0时,默认为10进制, 如: char a[] = "111"; long c = strtol(a, NULL, 2); printf("%ld\n",c); 输出结果: 7*/unsigned long int strtoul (const char* str, char** endptr, int base);unsigned long long int strtoull (const char* str, char** endptr, int base);
数字 转 char[]
#include <cstdio>/* sprintf, 不但可以将数字转为char[], 还支持格式化转译*/int sprintf ( char * str, const char * format, ... );char[10] s;sprintf(s, "%d", 123); //产生"123"sprintf(s, "%5d%5d", 123, 4567); //产生:" 123 4567"
string 和 char[] 互换
#include <string>#include <cstring> // strcpy()string -> char[] string str ("Please split this sentence into tokens"); char cstr[str.length()]; strcpy (cstr, str.c_str());char[] -> string string a = cstr; string b(cstr);
string 转 数字
#include <string>/* idx 用来存 字符串 转为 数字 后剩下的子串 base 进制*/int stoi (const string& str, size_t* idx = 0, int base = 10);long stol (const string& str, size_t* idx = 0, int base = 10);unsigned long stoul (const string& str, size_t* idx = 0, int base = 10);long long stoll (const string& str, size_t* idx = 0, int base = 10);unsigned long long stoull (const string& str, size_t* idx = 0, int base = 10);float stof (const string& str, size_t* idx = 0);double stod (const string& str, size_t* idx = 0);long double stold (const string& str, size_t* idx = 0);
数字 转 string
#include <string>string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long long val);string to_string (float val);string to_string (double val);string to_string (long double val);
字符串
基础操作
- “string”[i],字符串常量后也可以直接用[]来访问其中的字符
进阶知识
匿名函数
- 匿名函数,也称lamda函数,可以为编程提供很多的便利,但是我现在理解的还很浅。可以在 c++11标准:匿名函数(匿名表达式)lambda 这个博客中简单了解一下,等我深入理解了再详细介绍吧
参考资料
- http://blog.csdn.net/e_wsq/article/details/15026201
- http://www.cnblogs.com/yiii/p/5139130.html
- http://www.cplusplus.com
- http://blog.csdn.net/heyutao007/article/details/5773570
阅读全文
0 0
- C++/C学习笔记
- 【C/C++】STL学习笔记
- C/C学习笔记/导言
- C/C学习笔记/结构
- 【c/c++】学习笔记1
- C学习笔记1
- TPC-C学习笔记
- c语言学习笔记
- C语言学习笔记
- C语言学习笔记
- 学习笔记之c
- C#-学习笔记
- Objective-C学习笔记
- C++PRIMER学习笔记
- C学习笔记
- C 学习笔记
- C/C++学习笔记
- 1.C学习笔记
- zabbix centos6 安装文档 zabbix下载链接
- 一个文件上传的实例(服务端)
- js的原型模式理解
- [caioj]1209: 矩形面积交
- 线程安全
- c++学习笔记
- twitter-bootstrap-typeahead文本框搜索提醒组件
- Java 反斜杠如何转义的问题和mysql插入带'符号出错汇总
- 用表驱动消除冗余代码
- 模板引擎类
- SpringMVC解决POST请求乱码 配置Filter后仍未解决
- 小白必看 学习PHP的6个步骤10个技巧
- 安装Postgresql
- 由 B-/B+树看 MySQL索引结构