1.箭头操作符
如果p是一个指向对象的指针,(*p).foo;等价于p->foo;
2.条件运算符
cond?expr1:expr2;
(1)避免使用条件运算符的深度嵌套
(2)在输出表达式中使用条件操作符
3.sizeof操作符
sizeof操作符的作用是返回一个对象或类名的长度,返回值类型为size_t。
对数组做sizeof操作符等效于将对其元素类型做sizeof操作的结果乘上数组元素的个数。
int sz = sizeof(ia)/sizeof(*ia);
4.逗号操作符
逗号表达式是一组由逗号分隔的表达式,这些表达式从左向右计算。
5.new 和 delete表达式
new和delete表达式动态创建和释放数组,这两种表达式也可以用于创建和释放单个对象。
(1)动态创建duixiang 的初始化
int i(1024); int *pi = new int(1024); string s(10,'9'); string *ps = new string(10,'9');
(2)动态创建对象的默认初始化
int *pi = new int;//内置类型的对象无初始化 string *ps = new string;//调用类的默认构造函数初始化
除了对其赋值之外,对未初始化的对象所关联的值的任何使用都是没有定义的。
int *pi = new int; //无初始化 int *p1 = new int(); //初始化为0
6.撤销动态创建的对象
动态创建的对象用完后,程序员必须显式地将该对象占用的内存返回给自由存储区。
int *p1 = new int();//初始化为0 delete p1;
注意:如果指针指向不是用new分配的内存地址,则在该指针上使用delete是不合法的。
如果指针的值为0,则在其上做delete操作是合法的,但这样做没有任何意义:
int *ip = 0; delete ip;
C++保证,删除0值的指针是安全的。
7.在delete之后,重设指针的值
delete p;之后,P变成没有定义。在很多机器上,尽管p没有定义,担仍然存放了它之前所指向对象的地址,然而p所指向的内存已经被释放,因此p不再有效。删除指针后,该指针变成悬垂指针。悬垂指针指向曾经存放对象的内存,但该对象已经不再存在了。悬垂指针往往导致程序错误,而且很难检测出来
注意:一旦删除了指针所指向的对象,立即将指针置为0,这样就非常清楚地表明指针不再指向任何对象。
8.类型转换
显示转换:也叫强制类型转换(cast),包括以下名字命名的强制类型转换操作符:static_cast、dynamic_cast、const_cast和reinterpret_cast。虽然有时候需要强制类型转化,但是它们本质上是非常危险的。const_cast将转换掉表达式的const性质。
建议:避免使用强制类型转换。
虽然标准C++仍然支持旧式强制类型转换,但是我们建议,只有在C语言或标准C++之前的编译器编写代码时,才使用这种语法。 char *pc = (char*) ip;
相关推荐
C++ 表达式求值,运用类模板技术,自己写的栈类Stack,运算符优先级等,希望大家有兴趣下载用! 对学习数据结构的很有用哦!!
该PPT详细讲解了C++的基本表达式和相关语句,比较适合C++初学者学习
这是我自己编写的简单的表达式求值的源代码,很简单 很适合初学者
利用栈对表达式进行求值.涉及栈的基础代码以及栈的应用
A simple command line calculator that uses a recursive descent parser, written in C. Made as an exercise in tokenizing and parsing... ## Supported features Below is the BNF of the parser....
C C++表达式求值的实验报告,附有详细的注释。
C++实现表达式求值 本实验要求设计一个算术表达式求值的程序,该程序必须可以接受包含(,),+,-,*,/,%,和^(求幂运算符,a^b=ab )的中缀表达式,并求出结果。如果表达式正确,则输出表达式的结果;如果表达式非法...
用C++实现的表达式计算器,二叉树实现,能进行加、减、乘、除,还支持sin,cos等运算,内含详细注释。
C++表达式括号匹配题解样例
C++实现计算器,最通俗易懂的版本, 支持括号和四则运算 ,功能完整可以直接使用使用波兰表达式进行转化。
C++表达式求值,采用类和对象写的,用到了类模板等类对象技术,对C++学习者和数据结构学习者很有帮助,绝对首发,版权所有哈!
C++编程,表达式括号匹配配对问题的实验报告
c++表达式求值实现.pdf
c++数据结构课设 表达式求解 需要的请下载
将中缀表达式转换为二叉树、后序遍历二叉树转为后缀表达式、计算后缀表达式
C++表达式与运算符及左值专题[汇编].pdf
数据结构,用C++编程实现表达式的求值…………
使用boost::sprirt编写的表达式解析器,代码很容易扩展,功能很强大,适合做功能强大的客户化定义程序。 -----------表达式解析--------- 已定义的函数有:PI,SIN,COS,TAN,,ABS,EXP,LOGN,POW,SQRT,FORMAT,LENGTH,...
利用逆波兰法球表达式的值,java和c++版的,只能计算带小数点和括号
计算表达式的值,包括+-*/(),常用数学函数等功能,按优先级实现