﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-wizardjk-随笔分类-C/C++</title><link>http://www.cppblog.com/wizardjk/category/18278.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Dec 2011 13:06:10 GMT</lastBuildDate><pubDate>Fri, 02 Dec 2011 13:06:10 GMT</pubDate><ttl>60</ttl><item><title>在什么情况下应该使用adLockOptimistic，</title><link>http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Fri, 02 Dec 2011 12:32:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/154589.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/154589.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/154589.html</trackback:ping><description><![CDATA[<div><span id="articlecontent" style="width: 740px"><p>在什么情况下应该使用adLockOptimistic，什么情况下应该使用adLockPessimistic....</p> <p>在什么情况下应该使用adLockOptimistic，什么情况下应该使用adLockPessimistic,什么情况下用adOpenKeyset,什么情况下用adOpenDynamic- - <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  </p> <p>附带一个小资料： <br />----------------------------------- <br />常数 常数值 说明 <br />----------------------------------- <br />adOpenForwardOnly 0 缺省值，启动一个只能向前移动的游标（Forward Only）。 <br />adOpenKeyset 1 启动一个Keyset类型的游标。 <br />adOpenDynamic 2 启动一个Dynamic类型的游标。 <br />adOpenStatic 3 启动一个Static类型的游标。 <br />----------------------------------- <br />以上几个游标类型将直接影响到Recordset对象所有的属性和方法，以下列表说明他们之间的区别。 </p> <p>--------------------------------------------- <br />Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic <br />--------------------------------------------- <br />AbsolutePage 不支持 不支持 可读写 可读写 <br />AbsolutePosition 不支持 不支持 可读写 可读写 <br />ActiveConnection 可读写 可读写 可读写 可读写 <br />BOF 只读 只读 只读 只读 <br />Bookmark 不支持 不支持 可读写 可读写 <br />CacheSize 可读写 可读写 可读写 可读写 <br />CursorLocation 可读写 可读写 可读写 可读写 <br />CursorType 可读写 可读写 可读写 可读写 <br />EditMode 只读 只读 只读 只读 <br />EOF 只读 只读 只读 只读 <br />Filter 可读写 可读写 可读写 可读写 <br />LockType 可读写 可读写 可读写 可读写 <br />MarshalOptions 可读写 可读写 可读写 可读写 <br />MaxRecords 可读写 可读写 可读写 可读写 <br />PageCount 不支持 不支持 只读 只读 <br />PageSize 可读写 可读写 可读写 可读写 <br />RecordCount 不支持 不支持 只读 只读 <br />Source 可读写 可读写 可读写 可读写 <br />State 只读 只读 只读 只读 <br />Status 只读 只读 只读 只读 <br />AddNew 支持 支持 支持 支持 <br />CancelBatch 支持 支持 支持 支持 <br />CancelUpdate 支持 支持 支持 支持 <br />Clone 不支持 不支持 <br />Close 支持 支持 支持 支持 <br />Delete 支持 支持 支持 支持 <br />GetRows 支持 支持 支持 支持 <br />Move 不支持 支持 支持 支持 <br />MoveFirst 支持 支持 支持 支持 <br />MoveLast 不支持 支持 支持 支持 <br />MoveNext 支持 支持 支持 支持 <br />MovePrevious 不支持 支持 支持 支持 <br />NextRecordset 支持 支持 支持 支持 <br />Open 支持 支持 支持 支持 <br />Requery 支持 支持 支持 支持 <br />Resync 不支持 不支持 支持 支持 <br />Supports 支持 支持 支持 支持 <br />Update 支持 支持 支持 支持 <br />UpdateBatch 支持 支持 支持 支持 <br />---------------------------------------- <br />其中NextRecordset方法并不适用于Microsoft Access数据库。 </p> <p>LockType <br />Recordset对象Open方法的LockType参数表示要采用的Lock类型，如果忽略这个参数，那么系统会以 Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、 adLockOptimistic及adLockBatchOptimistic等，分述如下： </p> <p>----------------------------------- <br />常数 常数值 说明 <br />----------------------------------- <br />adLockReadOnly 1 缺省值，Recordset对象以只读方式启动，无法运行AddNew、Update及Delete等方法 <br />adLockPrssimistic 2 当数据源正在更新时，系统会暂时锁住其他用户的动作，以保持数据一致性。 <br />adLockOptimistic 3 当数据源正在更新时，系统并不会锁住其他用户的动作，其他用户可以对数据进行增、删、改的操作。 <br />adLockBatchOptimistic 4 当数据源正在更新时，其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。 </p> <p>=====定义数据库连接的一些常量 <br />&lt;% <br />Const adOpenForwardOnly = 0 '游标只向前浏览记录，不支持分页、Recordset、BookMark <br />Const adOpenKeyset = 1 '键集游标，其他用户对记录说做的修改将反映到记录集中，但其他用户增加或删除记录不会反映到记录集中。支持分页、Recordset、BookMark <br />Const adOpenDynamic = 2 '动态游标功能最强，但耗资源也最多。用户对记录说做的修改，增加或删除记录都将反映到记录集中。支持全功能浏览(ACCESS不支持)。 <br />Const adOpenStatic = 3 '静态游标，只是数据的一个快照，用户对记录说做的修改，增加或删除记录都不会反映到记录集中。支持向前或向后移动 </p> <p>Const adLockReadOnly = 1 '锁定类型，默认的，只读，不能作任何修改 <br />Const adLockPessimistic = 2 '当编辑时立即锁定记录，最安全的方式 <br />Const adLockOptimistic = 3 '只有在调用Update方法时才锁定记录集，而在此前的其他操作仍可对当前记录进行更改、插入和删除等 <br />Const adLockBatchOptimistic = 4 '当编辑时记录不会被锁定，而更改、插入和删除是在批处理方式下完成的 </p> <p>Const adCmdText = &amp;H0001 <br />Const adCmdTable = &amp;H0002 <br />%&gt; </p> <p>--------------------------------------------------------------- </p> <p>ADO Recordset的CursorLocation = AdUseClient时，只有AdOpenStatic/AdOpenForwardOnly <br />的CursorType会有作用，其他的二者和AdOpenStatic有相同的效果，即无论如何设，CursorType都是adOpenStatic。 </p> <p>如果是AdUseServer，在SQL Server中上述的四种CursorType都可以用，但是RecordSet中的Resync方法只有 <br />在adOpenKeyset的CursorType才能用，AdOpenStatic不能使用。</p></span></div><img src ="http://www.cppblog.com/wizardjk/aggbug/154589.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-12-02 20:32 <a href="http://www.cppblog.com/wizardjk/archive/2011/12/02/154589.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++操作符的优先级</title><link>http://www.cppblog.com/wizardjk/archive/2011/08/06/152679.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Sat, 06 Aug 2011 14:18:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/08/06/152679.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/152679.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/08/06/152679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/152679.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/152679.html</trackback:ping><description><![CDATA[<div><div><strong><br /></strong></div> <table style="line-height: 1.5;" bgcolor="#999999" border="0" cellpadding="3" cellspacing="1"> <tbody> <tr> <td colspan="4" bgcolor="#cccccc" valign="top"> <p align="center"><span style="font-family: Courier New;"><span style="font-size: small;"><strong>C++</strong><strong>操作符的优先级 </strong></span></span></p> </td> </tr> <tr> <td colspan="2" bgcolor="#ffffff" valign="top"> <p align="center"><span style="font-family: Courier New;"><span style="font-size: small;"><strong>操作符及其结合性</strong><strong> </strong></span></span></p> </td> <td bgcolor="#ffffff" valign="top" width="195"> <p align="center"><span style="font-family: Courier New;"><span style="font-size: small;"><strong>功能</strong><strong> </strong></span></span></p> </td> <td bgcolor="#ffffff" valign="top" width="168"> <p align="center"><span style="font-family: Courier New;"><span style="font-size: small;"><strong>用法</strong><strong> </strong></span></span></p> </td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L<br /> L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">::<br /> ::<br /> ::</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">全局作用域 <br /> 类作用域 <br /> 名字空间作用域 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">::name<br /> class::name<br /> namespace::name</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L<br /> L<br /> L<br /> L<br /> </span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">.<br /> -&gt;<br /> []<br /> ()<br /> ()<br /> </span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">成员选择 <br /> 成员选择 <br /> 下标 <br /> 函数调用 <br /> 类型构造 <br /> </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">object.member<br /> pointer-&gt;member<br /> variable[expr]<br /> name(expr_list)<br /> type(expr_list)</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R<br /> R<br /> R<br /> R<br /> R<br /> </span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">++<br /> --<br /> typeid<br /> typeid<br /> 显示强制类型转换 <br /> </span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">后自增操作 <br /> 后自减操作 <br /> 类型ID<br /> 运行时类型ID<br /> 类型转换 <br /> </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">lvalue++<br /> lvalue--<br /> typeid(type)<br /> typeid(expr)<br /> cast_name&lt;type&gt;(expr)</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R<br /> R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">sizeof<br /> sizeof<br /> ++<br /> --<br /> ~<br /> !<br /> -<br /> +<br /> *<br /> &amp;<br /> ()<br /> new<br /> delete<br /> delete[]</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">对象的大小 <br /> 类型的大小 <br /> 前自增操作 <br /> 前自减操作 <br /> 位求反 <br /> 逻辑非 <br /> 一元负号 <br /> 一元正号 <br /> 解引用 <br /> 取地址 <br /> 类型转换 <br /> 创建对象 <br /> 释放对象 <br /> 释放数组 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">sizeof expr<br /> sizeof(type)<br /> ++lvalue<br /> --lvalue<br /> ~expr<br /> !expr<br /> -expr<br /> +expr<br /> *expr<br /> &amp;expr<br /> (type)expr<br /> new type<br /> delete expr<br /> delete []expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">-&gt;*<br /> .*</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">指向成员操作的指针 <br /> 指向成员操作的指针 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">ptr-&gt;*ptr_to_member<br /> obj.*ptr_to_member</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L<br /> L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">*<br /> /<br /> %</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">乘法 <br /> 除法 <br /> 求模（求余） </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">expr * expr<br /> expr / expr<br /> expr % expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">+<br /> -</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">加法 <br /> 减法 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">expr + expr<br /> expr - expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">&lt;&lt; <br /> &gt;&gt; </span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">位左移 <br /> 位右移</span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">expr &lt;&lt; expr<br /> expr &gt;&gt; expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> L<br /> L<br /> L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">&lt; <br /> &lt;=<br /> &gt; <br /> &gt;=</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">小于 <br /> 小于或等于 <br /> 大于 <br /> 大于或等于 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">expr &lt; expr<br /> expr &lt;= expr<br /> expr &gt; expr<br /> expr &gt;= expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L<br /> R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">==<br /> !=</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">相等 <br /> 不等 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr == expr<br /> Expr != expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">&amp;</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">位与 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr &amp; expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">^</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">位异或 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr ^ expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">|</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">位或 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr | expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">&amp;&amp;</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">逻辑与 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr &amp;&amp; expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">||</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">逻辑或 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr || expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">?:</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">条件操作 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr ? expr : expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R<br /> R<br /> R<br /> R<br /> R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">=<br /> *=,/=,%=<br /> +=,-=<br /> &lt;&lt;=,&gt;&gt;=<br /> &amp;=,|=,^=</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">赋值操作 <br /> 符合赋值操作 <br /> <br /> </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Lvalue= expr<br /> Lvalue+= expr<br /> &#8230;&#8230; <br /> <br /> </span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">R</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">throw</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">抛出异常 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Throw expr</span></td> </tr> <tr> <td bgcolor="#ffffff" valign="top" width="43"><span style="font-family: Courier New; font-size: small;">L</span></td> <td bgcolor="#ffffff" valign="top" width="81"><span style="font-family: Courier New; font-size: small;">,</span></td> <td bgcolor="#ffffff" valign="top" width="195"><span style="font-family: Courier New; font-size: small;">逗号 </span></td> <td bgcolor="#ffffff" valign="top" width="168"><span style="font-family: Courier New; font-size: small;">Expr, expr</span></td> </tr> </tbody> </table> <div><span style="color: #0000ff;">记忆方法：</span></div>  <span style="color: #800080; font-size: small;"><span style="color: #0000ff;">--摘自《C语言程序设计实用问答》&nbsp;&nbsp;&nbsp;&nbsp; -吕凤翥&nbsp;&nbsp;&nbsp;&nbsp; 吕&nbsp;&nbsp;&nbsp;&nbsp; 涛著&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 问题：如何记住运算符的15种优先级和结合性？&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 解答：C语言中运算符种类比较繁多，优先级有15种，结合性有两种。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 如何记忆两种结合性和15种优先级？下面讲述一种记忆方法。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 结合性有两种，一种是自左至右，另一种是自右至左，大部分运算符的结合性是自左至右，只有单目运算符、三目运算符的赋值运算符的结合性自右至左。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 优先级有15种。记忆方法如下：&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 记住一个最高的：构造类型的元素或成员以及小括号。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 记住一个最低的：逗号运算符。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 剩余的是一、二、三、赋值。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 意思是单目、双目、三目和赋值运算符。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 在诸多运算符中，又分为：&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 算术、关系、逻辑。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 两种位操作运算符中，移位运算符在算术运算符后边，逻辑位运算符在逻辑运算符的前面。再细分如下：&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 算术运算符分&nbsp;&nbsp;&nbsp;&nbsp; *，/，%高于+，-。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 关系运算符中，》，》=，《，〈=高于==，！=。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 逻辑运算符中，除了逻辑求反（！）是单目外，逻辑与（&amp;&amp;）高于逻辑或（||）。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 逻辑位运算符中，除了逻辑按位求反（~）外，按位与（&amp;)高于按位半加（^)，高于按位或（|）。&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 这样就将15种优先级都记住了，再将记忆方法总结如下：&nbsp;&nbsp;&nbsp;<br /> &nbsp;&nbsp;&nbsp; 去掉一个最高的，去掉一个最低的，剩下的是一、二、三、赋值。双目运算符中，顺序为算术、关系和逻辑，移位和逻辑位插入其中。&nbsp; </span></span></div><img src ="http://www.cppblog.com/wizardjk/aggbug/152679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-08-06 22:18 <a href="http://www.cppblog.com/wizardjk/archive/2011/08/06/152679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于C的学习</title><link>http://www.cppblog.com/wizardjk/archive/2011/07/05/150168.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Mon, 04 Jul 2011 20:19:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/07/05/150168.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/150168.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/07/05/150168.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/150168.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/150168.html</trackback:ping><description><![CDATA[1：图形绘制可使用easyX提供的graphics.h头文件<img src ="http://www.cppblog.com/wizardjk/aggbug/150168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-07-05 04:19 <a href="http://www.cppblog.com/wizardjk/archive/2011/07/05/150168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[C++对象模型][1]目录与参考——转载</title><link>http://www.cppblog.com/wizardjk/archive/2011/06/18/148894.html</link><dc:creator>托雷宽</dc:creator><author>托雷宽</author><pubDate>Sat, 18 Jun 2011 01:30:00 GMT</pubDate><guid>http://www.cppblog.com/wizardjk/archive/2011/06/18/148894.html</guid><wfw:comment>http://www.cppblog.com/wizardjk/comments/148894.html</wfw:comment><comments>http://www.cppblog.com/wizardjk/archive/2011/06/18/148894.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wizardjk/comments/commentRss/148894.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wizardjk/services/trackbacks/148894.html</trackback:ping><description><![CDATA[<div><div id="cnblogs_post_body"><p>C++对象模型系列：</p> <p>本系列是主要是作者经验的总结且同时参考了大量的网络文章，希望能够给C++的学习者有所帮助，但是由于作者水平有限，难免有错，希望大家能够指出，我将虚心地向大家学习，与大家共同进步！本系列的开发环境是Windows 32+VS2008。</p> <p>文章：</p> <p>&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/20/1394272.html">指针和引用</a><br />&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/22/1395434.html">指针与数组</a><br />&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/22/1395491.html">指针与字符串</a><br />&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/23/1395515.html">堆栈与函数调用</a><br />&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/25/1396740.html">sizeof与对象内存布局</a><br />&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/27/1398224.html">单继承与虚函数表<br /></a>&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/28/1399995.html">多重继承与虚函数表<br /></a>&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/27/1399996.html">虚继承与虚函数表</a><br />&nbsp;<a target="_blank" href="http://www.cnblogs.com/itech/archive/2009/02/25/1398230.html">类型转化</a></p> <p>参考：</p> <p>1) C++对象模型<br />&nbsp;C++对象模型笔记：http://blog.csdn.net/ZengMuAnSha/archive/2004/10/13/135477.aspx<br />&nbsp;C++对象内存布局1：http://blog.csdn.net/haoel/archive/2008/10/15/3081328.aspx<br />&nbsp;C++对象内存布局1：http://blog.csdn.net/haoel/archive/2008/10/15/3081385.aspx<br />&nbsp;C++虚函数表解析： http://blog.csdn.net/haoel/archive/2007/12/18/1948051.aspx<br />&nbsp;字节对齐1：http://blog.csdn.net/xuegao007/archive/2007/07/26/1708349.aspx<br />&nbsp;字节对齐2：http://blog.csdn.net/xuegao007/archive/2007/07/26/1708355.aspx<br />&nbsp;字节对齐3：http://blog.csdn.net/xuegao007/archive/2007/07/26/1708360.aspx<br />&nbsp;sizeof : http://blog.csdn.net/xuegao007/archive/2007/08/23/1756047.aspx<br />&nbsp;C++内存对象大会战1：http://blog.csdn.net/xuegao007/archive/2007/08/03/1723765.aspx<br />&nbsp;C++内存对象大会战2：http://blog.csdn.net/xuegao007/archive/2007/08/03/1723766.aspx<br />&nbsp;C++内存管理详解 ： http://www.cnblogs.com/dazhong/articles/721704.html<br />&nbsp;C++内存布局 ：http://www.cnblogs.com/len3d/archive/2007/09/26/906899.html <br />&nbsp;Visual C++ 8.0对象布局的奥秘：虚函数、多继承、虚拟继承 ： http://www.cnblogs.com/neoragex2002/archive/2007/11/01/VC8_Object_Layout_Secret.html <br />&nbsp;关于typeid和RTTI的问答&nbsp; ：http://blog.csdn.net/gxj1680/archive/2009/01/05/3715364.aspx<br />&nbsp;字符串与数组工具收藏：http://tfzxbookshell.spaces.live.com/blog/cns!EB39D7FA27BCD1A1!902.entry<br />&nbsp;memset ,memcpy 和strcpy 的根本区别？:http://tfzxbookshell.spaces.live.com/blog/cns!EB39D7FA27BCD1A1!904.entry<br />&nbsp;函数调用约定和堆栈：http://www.fmddlmyy.cn/text12.html<br />&nbsp;Win32程序函数调用时堆栈变化情况分析收藏：<br />http://www.cnblogs.com/hellohuan/archive/2008/07/07/1237371.html<br />http://blog.csdn.net/wenjie2005/archive/2008/01/09/2031377.aspx<br />C++ sizeof 使用规则及陷阱分析: http://freeman.cnblogs.com/articles/sizeof.html<br />What static_cast&lt;&gt; is actually doing:http://www.codeproject.com/KB/cpp/static_cast.aspx<br />Using generics in C++/CLI:http://www.codeproject.com/KB/mcpp/cppcligenerics.aspx<br />Type Casting:<br />http://www.cplusplus.com/doc/tutorial/typecasting.html<br />http://en.wikipedia.org/wiki/Typeid<br />type_info:<br />http://msdn.microsoft.com/zh-cn/library/70ky2y6k(en-us,VS.80).aspx<br />http://www.cplusplus.com/reference/std/typeinfo/type_info.html<br />http://www.informit.com/guides/content.aspx?g=cplusplus&amp;seqNum=120<br />http://www.atnf.csiro.au/computing/software/sol2docs/manuals/c++/prog_guide/RTTI.html<br />http://www.linuxtopia.org/online_books/programming_books/c++_practical_programming/c++_practical_programming_208.html<br />http://en.wikibooks.org/wiki/C%2B%2B_Programming/RTTI<br />http://docs.hp.com/en/B3901-90024/ch06s05.html<br />各种cast：<br />http://www.codeproject.com/KB/mcpp/castingbasics.aspx<br />http://www.cplusplus.com/doc/tutorial/typecasting.html<br />http://blog.baisi.net/?441896/viewspace-4063<br />http://blog.csdn.net/singno116/archive/2008/04/18/2304962.aspx<br />http://blog.chinaunix.net/u2/70445/showart_1357610.html<br />http://read.newbooks.com.cn/info/50236.html</p> <p>谢谢！</p></div><div id="MySignature"><p>感谢，Thanks！<br /> <br /> 作者：<a href="http://itech.cnblogs.com/" target="_blank">iTech</a><br /> 出处：<a href="http://itech.cnblogs.com/" target="_blank">http://itech.cnblogs.com/</a> <br /> 本文版权归作者iTech所有，转载请包含作者签名和出处，不得用于商业用途，非则追究法律责任！</p></div></div><img src ="http://www.cppblog.com/wizardjk/aggbug/148894.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wizardjk/" target="_blank">托雷宽</a> 2011-06-18 09:30 <a href="http://www.cppblog.com/wizardjk/archive/2011/06/18/148894.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>