冒号在C语言中有以下几种作用:
1.语句标识,与goto语句配合使用。如:
c++if (c>3) goto next
if (c<2){
c--
}
next: return
由于goto语句会造成不易阅读等情况,因此应避免使用
2.条件赋值语句的组成部分
a=(a>3)?1:2
冒号将前面的条件语句在真和假两种情况的不同取值进行了分隔。
3.位域
struct K{int a:1
int b:2
}
这里用作指示位宽的标识,上例中,a占一个位宽,b占两个位宽。
4.switch语句的case分支标识
switch(表达式){case 常量表达式1: 语句1
case 常量表达式2: 语句2
…
case 常量表达式n: 语句n
default: 语句n+1
}
在case后面跟一个常量表达式,再加上冒号,作为不同分支的入口条件。
(1)表示机构内位域的定义(即该变量占几个bit空间)
代码如下:
typedef struct _XXX{
unsigned char a:4
unsigned char c
} XXX
(2)构造函数后面的冒号起分割作用,是类给成员变量赋值的方法,初始化列表,更适用于成员变量的常量const型。
代码如下:
struct _XXX{
_XXX() : y(0xc0) {}
}
(3) public:和private:后面的冒号,表示后面定义的所有成员都是公有或私有的,直到下一个"public:”或"private:”出现为止。"private:"为默认处理。
(4)类名冒号后面的是用来定义类的继承。
代码如下:
class 派生类名 : 继承方式 基类名
{
派生类的成员
}
继承方式:public、private和protected,默认处理是public。