📄 keywords_details.html
字号:
<!-- saved from url=(0022)http://internet.e-mail -->
<HTML><HEAD> <TITLE>cppreference</TITLE></HEAD><BODY BGCOLOR="FFFFFF"><TABLE WIDTH="100%" BGCOLOR="EEEEFF"><TR><TD> <A HREF="index.html">cppreference.com</A> -> <a href="keywords.html">C/C++ 关键字</a> -> 细节</TD></TR></TABLE><H1>C/C++ 关键字</H1> <HR><H2> <A NAME="asm">asm</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> asm( "instruction" );</PRE></TD></TR></TABLE><P> asm允许你在你的代码中直接插入汇编语言指令, 各种不同的编译器为这一个指令允许不一致形式, 比如:<br> </P><PRE> asm { instruction-sequence }</PRE><P> or</P><PRE> asm( instruction ); </PRE><HR><H2> <A NAME="auto">auto</A></H2><P> 关键字auto是用来声明完全可选择的局部变量的</P><HR><H2> <A NAME="bool">bool</A></H2><P> 关键字bool是用来声明布尔逻辑变量的;也就是说,变量要么是真,要么是假。举个例子:</P><PRE> bool done = false; while( !done ) { ... } </PRE><P> 你也可以查看 <A HREF="data_types.html">data types</A> 这一页.</P><HR><H2> <A NAME="break">break </A></H2><P> 关键字break是用来跳出一个<A HREF="#do">do</A>, <A HREF="#for">for</A>, or <A HREF="#while">while</A> 的循环. 它也可以结束一个 <A HREF="#switch">switch</A> 语句的子句,让程序忽略下面的case代码.举个例子:</P><PRE> while( x < 100 ) { if( x < 0 ) break; cout << x << endl; x++; }</PRE><P> break语句只能跳出本层循环,假如你要跳出一个三重嵌套的循环,你就要使用包含其它的逻辑或者用一个goto语句跳出这个嵌套循环.</P><HR><H2> <A NAME="case">case</A></H2><P> 在<A HREF="#switch">switch</A>里面用来检测匹配 .</P><I>相关主题:</I><BR><STRONG><A HREF="#default">default</A>,<A HREF="#switch">switch</A></STRONG><HR><H2> <A NAME="catch">catch</A></H2><P> catch 语句通常通过 <A HREF="#throw">throw</A> 语句捕获一个异常.</P><I>相关主题:</I><BR><STRONG><A HREF="#throw">throw</A>,<A HREF="#try">try</A></STRONG><HR><H2> <A NAME="char">char</A></H2><P> 关键字char用来声明布尔型变量. 你也可以查看 <A HREF="data_types.html">data types</A> 这一页...</P><HR><H2> <A NAME="class">class</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> class class-name : inheritance-list { private-members-list; protected: protected-members-list; public: public-members-list; } object-list;</PRE></TD></TR></TABLE><P> 关键字class允许你创建新的数据类型. <I>class-name</I> 就是你要创建的类的名字,并且 <I>inheritance-list</I> 是一个对你创建的新类可供选择的定义体的表单.类的默认为私有类型成员,除非这个表单标注在公有或保护类型之下. <I>object-list</I> 是一个或一组声明对象.举个例子:</P><PRE> class Date { int Day; int Month; int Year; public: void display(); };</PRE><I>相关主题:</I><BR><STRONG><A HREF="#struct">struct</A>,<A HREF="#union">union</A></STRONG><HR><H2> <A NAME="const">const</A></H2><P> 关键字const用来告诉编译器一个一旦被初始化过的变量就不能再修改.</P><I>相关主题:</I><BR><STRONG><A HREF="#const_cast">const_cast</A></STRONG><HR><H2> <A NAME="const_cast">const_cast</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF"><TR><TD><PRE> const_cast<type> (object);</PRE></TD></TR></TABLE><P> 关键字const用于移除"const-ness"的数据,目标数据类型必须和原类型相同,目标数据没有被const定义过除外.</P><I>相关主题:</I><BR><STRONG><A HREF="#dynamic_cast">dynamic_cast</A>,<A HREF="#reinterpret_cast">reinterpret_cast</A>,<A HREF="#static_cast">static_cast</A></STRONG><HR><H2> <A NAME="continue">continue</A></H2><P> continue语句用来结束这次循环在一个循环语句中,例如,下面这段代码会显示所有除了10之外0-20的所有数字:</P><PRE> for( int i = 0; i < 21; i++ ) { if( i == 10 ) { continue; } cout << i << " "; }</PRE><I>相关主题:</I><BR><STRONG><A HREF="#break">break</A>,<A HREF="#do">do</A>,<A HREF="#for">for</A>,<A HREF="#while">while</A></STRONG> <HR><H2> <A NAME="default">default</A></H2><P> <A HREF="#switch">switch</A> 语句中的缺省条件.</P><I>相关主题:</I><BR><STRONG><A HREF="#case">case</A>,<A HREF="#switch">switch</A></STRONG><HR><H2> <A NAME="delete">delete</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table1"><TR><TD><PRE> delete p; delete[] pArray;</PRE></TD></TR></TABLE><P> delete操作用来释放<I>p</I>指向的内存.这个指针先前应该被 <A HREF="#new">new</A>调用过.上面第二种形式用于删除一个数组.</P><I>相关主题:</I><BR><STRONG><A HREF="#new">new</A></STRONG><HR><H2> <A NAME="do">do</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table2"><TR><TD><PRE> do { statement-list; } while( condition );</PRE></TD></TR></TABLE><P> do构建一个循环语句表,直到条件为假.注意循环中的语句至少被执行一次,因为判断条件在循环的最后.</P><I>相关主题:</I><BR><STRONG><A HREF="#for">for</A>,<A HREF="#while">while</A></STRONG><HR><H2> <A NAME="double">double</A></H2><P> 关键字double用来声明浮点型变量的精度. 你也可以查看 <A HREF="data_types.html">data types</A> 这一页.</P><HR><H2> <A NAME="dynamic_cast">dynamic_cast</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table3"><TR><TD><PRE> dynamic_cast<type> (object);</PRE></TD></TR></TABLE><P> 关键字dynamic_cast强制将一个类型转化为另外一种类型,并且在执行运行时时检查它保证它的合法性。如果你想在两个互相矛盾的类型之间转化时,cast的返回值将为NULL.</P><I>相关主题:</I><BR><STRONG><A HREF="#const_cast">const_cast</A>,<A HREF="#reinterpret_cast">reinterpret_cast</A>,<A HREF="#static_cast">static_cast</A></STRONG><HR><H2> <A NAME="else">else</A></H2><P> 关键字else用在 <A HREF="#if">if</A> 语句中的二中选一.</P><HR><H2> <A NAME="enum">enum</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table4"><TR><TD><PRE> enum name {name-list} var-list;</PRE></TD></TR></TABLE><P> 关键字enum用来创建一个包含多个名称元素的名称表.<I>var-list</I> 是可选的. 例如:</P><PRE> enum color {red, orange, yellow, green, blue, indigo, violet}; color c1 = indigo; if( c1 == indigo ) { cout << "c1 is indigo" << endl; }</PRE><HR><H2> <A NAME="explicit">explicit</A></H2><P> 当构造函数被指定为explicit的时候,将不会自动把构造函数作为转换构造函数,这仅仅用在当一个初始化语句参数与这个构造函数的形参匹配的情况.</P><HR><H2> <A NAME="extern">extern</A></H2><P> 关键字extern用来告知编译器变量在当前范围之外声明过了.被extern语句描述过的变量将分派不到任何空间,因为他们在别的地方被定义过了.</P><P> Extern语句频繁的用于在多个文件之间的跨范围数据传递.</P><HR><H2> <A NAME="false">false</A></H2><P> "false"是布尔型的值.</P><I>相关主题:</I><BR><STRONG><A HREF="#bool">bool</A>,<A HREF="#true">true</A></STRONG><HR><H2> <A NAME="float">float</A></H2><P> 关键字float用来声明浮点型变量. 你也可以查看 <A HREF="data_types.html">data types</A> 这一页.</P><HR><H2> <A NAME="for">for</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table5"><TR><TD><PRE> for( initialization; test-condition; increment ) { statement-list; }</PRE></TD></TR></TABLE><P> for构造一个由4部分组成的循环: <OL> <LI>初始化, 可以由0个或更多的由逗号分开的初始化语句构成;</LI> <LI>判断条件,如果满足该语句循环继续执行; </LI> <LI>增量, 可以由0个或更多的由逗号分开的增量语句构成;</LI> <LI>语句体,由0个或更多的语句构成,当循环条件成立时他们被执行. </OL> 例如:</P><PRE> for( int i = 0; i < 10; i++ ) { cout << "i is " << i << endl; } int j, k; for( j = 0, k = 10; j < k; j++, k-- ) { cout << "j is " << j << " and k is " << k << endl; } for( ; ; ) { // loop forever! }</PRE><I>相关主题:</I><BR><STRONG><A HREF="#do">do</A>,<A HREF="#while">while</A></STRONG><HR><H2> <A NAME="friend">friend</A></H2><P> 关键字friend允许类或函数访问一个类中的私有数据.</P><HR><H2> <A NAME="goto">goto</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table6"><TR><TD><PRE> goto labelA; ... labelA:</PRE></TD></TR></TABLE><P> goto语句可以完成从当前位置到指定标志位的跳转.使用goto语句要<a href="http://www.acm.org/classics/oct95/">考虑有害性</a>,所以它不经常使用. 例如, goto可以用来跳出多重嵌套 <A HREF="#for">for</A> 循环,它比额外的逻辑性跳出更具有时效性.</P><I>相关主题:</I><BR><STRONG><A HREF="#break">break</A></STRONG><HR><H2> <A NAME="if">if</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table7"><TR><TD><PRE> if( conditionA ) { statement-listA; } else if( conditionB ) { statement-listB; } ... else { statement-listN; }</PRE></TD></TR></TABLE><P> if 构造一个允许不同的代码在不同的条件下执行的分支机制.<I>conditions</I> 是判断语句,<I>statement-list</I> . 假如条件为假, else语句块将被执行,所有的else是可选的.</P><I>相关主题:</I><BR><STRONG><A HREF="#else">else</A>,<A HREF="#for">for</A>,<A HREF="#while">while</A></STRONG><HR><H2> <A NAME="inline">inline</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table8"><TR><TD><PRE> inline int functionA( int i ) { ... }</PRE></TD></TR></TABLE><P> inline这个关键字请求编译器扩张一个给定的函数。它向这个函数发出一条插入代码的call。函数里面有静态变量,嵌套的,switches,或者是递归的时候不给予内联。当一个函数声明包含在一个类声明里面时,编译器会尝试的自动把函数内联。<br> 关键字inline请求编译器给一个函数扩展空间,它向这个函数发出一条插入代码的call.函数里面有 <A HREF="#static">static</A> 数据, 循环, <A HREF="#switch">switches</A>, 或者是递归的时候不给予内联.当一个函数声明包含在一个类声明里面时,编译器会尝试的自动把函数内联.</P><HR><H2> <A NAME="int">int</A></H2><P> 关键字int 用来声明整型变量. 你也可以查看 <A HREF="data_types.html">data types</A> 这一页.</P><HR><H2> <A NAME="long">long</A></H2><P> 关键字keyword 用来修正数据类型,它用来声明长整型变量. 查看 <A HREF="data_types.html">data types</A> 这一页.</P><I>相关主题:</I><BR><STRONG><A HREF="#short">short</A></STRONG><HR><H2> <A NAME="mutable">mutable</A></H2><P> 关键字mutable 忽略所有<A HREF="#const">const</A> 语句.一个属于const对象的mutable 成员可以被修改.</P><HR><H2> <A NAME="namespace">namespace</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table9"><TR><TD><PRE> namespace name { declaration-list; }</PRE></TD></TR></TABLE><P> 关键字namespace允许你创建一个新的空间.名字由你选择,忽略创建没有命名的名字空间.一旦你创建了一个名字空间,你必须明确地说明它或者用关键字<A HREF="#using">using</A>. 例如:<PRE> namespace CartoonNameSpace { int HomersAge; void incrementHomersAge() { HomersAge++; } } int main() { ... CartoonNameSpace::HomersAge = 39; CartoonNameSpace::incrementHomersAge(); cout << CartoonNameSpace::HomersAge << endl; ... }</PRE></P><HR><H2> <A NAME="new">new</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table10"><TR><TD><PRE> pointer = new type; pointer = new type( initializer ); pointer = new type[size];</PRE></TD></TR></TABLE><P> new可以给数据类型分配一个新结点并返回一个指向新分配内存区的首地址. 也可以对它进行初始化.中括号中的 <I>size</I> 可以分配尺寸大小.</P><I>相关主题:</I><BR><STRONG><A HREF="#delete">delete</A></STRONG><HR><H2> <A NAME="operator">operator</A></H2><I>语法:</I><TABLE BGCOLOR="CCCCFF" id="table11"><TR><TD><PRE> return-type class-name::operator#(parameter-list) { ... } return-type operator#(parameter-list) { ... }</PRE></TD></TR></TABLE><P> 关键字operator 用于重载函数.在上面语法中用特殊符(#)描述特征的操作将被重载.假如在一个类中,类名应当被指定.对于一元的操作, <I>parameter-list</I> 应当为空, 对于二元的操作,在operator右边的 <I>parameter-list</I> 应当包含操作数 (在operand 左边的被当作 <A HREF="#this">this</A>通过).</P><P> 对于不属于重载函数的operator成员,在左边的操作数被作为第一个参数,在右边的操作数被当作第二个参数被通过.</P><P> 你不能用<STRONG>#</STRONG>, <STRONG>##</STRONG>, <STRONG>.</STRONG>, <STRONG>:</STRONG>, <STRONG>.*</STRONG>, 或者
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -