c語言中冒號
1. c語言中的冒號(:)是什麼意思
兩種用法,一種是和?構成的條件表達式
即?:運算符
還有個是標點符的:
也是運算符
1.作為位域 ,表示佔多少二進制位
2.和switch語句在一起用
如:
switch(c)
{
case 10://這里有冒號的
//執行語句
break;
case 3;
//執行語句
.....
}
2. c語言中,函數定義中的冒號是什麼意思
(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。
3. C語言一種特殊的冒號用法!
理解C語言位域
有些信息在存儲時,並不需要佔用一個完整的位元組, 而只需占幾個或一個二進制位。例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省存儲空間,並使處理簡便,C語言又提供了一種數據結構,稱為「位域」或「位段」。所謂「位域」是把一個位元組中的二進位劃分為幾個不同的區域,並說明每個區域的位數。每個域有一個域名,允許在程序中按域名進行操作。這樣就可以把幾個不同的對象用一個位元組的二進制位域來表示。一、位域的定義和位域變數的說明位域定義與結構定義相仿,其形式為:
struct 位域結構名
{ 位域列表 };
其中位域列表的形式為: 類型說明符 位域名:位域長度
例如:
struct bs
{
int a:8;
int b:2;
int c:6;
};
位域變數的說明與結構變數說明的方式相同。 可採用先定義後說明,同時定義說明或者直接說明這三種方式。例如:
struct bs
{
int a:8;
int b:2;
int c:6;
}data;
說明data為bs變數,共占兩個位元組。其中位域a佔8位,位域b佔2位,位域c佔6位。對於位域的定義尚有以下幾點說明:
1. 一個位域必須存儲在同一個位元組中,不能跨兩個位元組。如一個位元組所剩空間不夠存放另一位域時,應從下一單元起存放該位域。也可以有意使某位域從下一單元開始。例如:
struct bs
{
unsigned a:4
unsigned :0 /*空域*/
unsigned b:4 /*從下一單元開始存放*/
unsigned c:4
}
在這個位域定義中,a占第一位元組的4位,後4位填0表示不使用,b從第二位元組開始,佔用4位,c佔用4位。
2. 由於位域不允許跨兩個位元組,因此位域的長度不能大於一個位元組的長度,也就是說不能超過8位二進位。
3. 位域可以無位域名,這時它只用來作填充或調整位置。無名的位域是不能使用的。例如:
struct k
{
int a:1
int :2 /*該2位不能使用*/
int b:3
int c:2
};
從以上分析可以看出,位域在本質上就是一種結構類型, 不過其成員是按二進位分配的。
4. C語言中有兩個冒號是什麼意思見圖片!
兩個冒號表示作用域操作符。::操作符在其左操作數的作用域內找到其右操作數的名字。用於訪問某個命名空間中的名字,如std::cout,表明名字cout來自命名空間std。同樣的可以用來從某個類取名字,如string::size_type,表明size_type是string類定義的
5. c語言中的冒號
是錯誤,應該是=這條語句是對兩個字元串s[i]和s[j]的長度進行判斷,如果s[i]的長度更大,字元串s[i]與s[j]交換這段語句肯定是實現對一組字元串按字元串長度從小到大排序的功能模塊中的一條語句
6. c語言的雙冒號是什麼意思::
雙冒號(::)用法:
1、表示「域操作符」。
2、直接用在全局函數前,表示是全局函數。
3、表示引用成員函數及變數,作用域成員運算符。
4、命名空間作用域符,即2直接用在全局函數前,表示是全局函數,在運算符等級中屬於最高級的。
(6)c語言中冒號擴展閱讀:
1、在類外部聲明成員函數。void Point::Area(){};
2、調用全局函數;
3、表示引用成員函數變數及作用域,作用域成員運算符 例:System::Math::Sqrt() 相當於System.Math.Sqrt()
4、調用類的靜態方法: 如:CDisplay::display(...)
可以非正式地把域看作是一個可視窗口全局域的對象在它被定義的整個文件里,一直到文件末尾都是可見的。
在一個函數內被定義的對象是局域的(local scope), 它只在定義其的函數體內可見。每個類維持一個域,在這個域之外 ,它的成員是不可見的。類域操作符告訴編譯器後面的標識符可在該類的范圍內被找到。
7. c語言中" : "(冒號)和問號是什麼意思
bool a = 1>3?false:true;
?: 是三元運算符由條件運算符組成的條件表達式的一般形式為:
表達式1 ? 表達式 2 : 表達式3,其中表達式 1、表達式2、表達式3,既可以是一個簡單的表達式,又可以是由各種運算符組成的復合表達式。
計算過程很好理解:先求表達式1的值, 如果為真, 則求表達式2 的值並把它作為整個表達式的值。 如果表達式1 的值為假,則求表達式3 的值並把它作為整個表達式的值。
(7)c語言中冒號擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
8. C語言中冒號運算符是怎樣使用的,比如 (a/3>0a/10:a%3))
C語言中沒有單獨的冒號運算符,冒號需要與問號合用,形成條件運算符。
C語言中條件運算符是唯一有3個操作數的運算符,所以有時又稱為三元運算符。
條件運算符的使用形式為:b ? x : y
其運算過程為:先計算條件b,然後進行判斷:如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。
如:
inta=5,b;
b=a/3>0?a/10:a%3;//此時,b的結果為a/10=0
運算過程解析:
先計算a/3>0 , 因為a=5,所以,a/3=5/3=1 > 0,條件為true
所以,b=a/10 = 5/10=0
a%3被略過了。
條件表達式,可以用if語句來改寫,如,上面的例子可改為:
inta=5,b;
if(a/3>0)
b=a/10;
else
b=a%3;
9. C語言冒號 是什麼意思
這個 佔用 12個位。 只佔12位。
一個半位元組。
U16 u16Year:12;
U16 u8Month:4; 這兩個成員共同佔用2個位元組。 前1.5個位元組 u16Year,後4位 month
10. C語言里兩個冒號是什麼意思
雙冒號(::)用法
(1)表示「域操作符」
例:聲明了一個類A,類A里聲明了一個成員函數void f(),但沒有在類的聲明裡給出f的定義,那麼在類外定義f時,
就要寫成void A::f(),表示這個f()函數是類A的成員函數。
(2)直接用在全局函數前,表示是全局函數
例:在VC里,你可以在調用API 函數里,在API函數名前加::
(3)表示引用成員函數及變數,作用域成員運算符
例:System::Math::Sqrt() 相當於System.Math.Sqrt()
VC中如下
::是C++里的「作用域分解運算符」。比如聲明了一個類A,類A里聲明了一個成員函數voidf(),但沒有在類的聲明裡給出f的定義,那麼在類外定義f時,就要寫成voidA::f(),表示這個f()函數是類A的成員函數。
:: 一般還有一種用法,就是直接用在全局函數前,表示是全局函數。當類的成員函數跟類外的一個全局函數同名時,考試,大提示在類內定義的時候,打此函數名默認 調用的是本身的成員函數;如果要調用同名的全局函數時,就必須打上::以示區別。比如在VC里,你可以在調用API函數時,在API函數名前加::。