當前位置:首頁 » 編程語言 » c語言問號冒號符號詳解
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言問號冒號符號詳解

發布時間: 2022-06-21 02:55:24

A. c語言中「」和「:」是什麼意思

起來的意思
我舉個例子吧
int
a
=3;
int
b=
2;
int
c;
if(a>b)?(c=a):(c=b);//意思是如果a>b就執行c=a,否則就執行c=b
類似於下面的語句
if(a>b)
{
c=a;
}
else
{
c
=
b;
}

條件運算符是
?
:

表達式為:表達式1?表達式2:表達式3
表達式2是條件成立(邏輯值為1)時整個表達式的取值
表達式3是條件不成立(邏輯值為0)時整個表達式的值
例如:
m<n?x:a+3
a++>=10
&&
b-->20
?
a
:
b
x=3+a>5
?
100
:
200

優先順序

條件運算符優先順序高於賦值、逗號運算符,低於其他運算符
例如:

m<n
?
x
:
a+3
等價於:(m<n)
?(x)
:(a+3)

a++>=10
&&
b-->20
?
a
:
b
等價於:(a++>=10
&&
b-->20)
?
a
:
b

x=3+a>5
?
100
:
200
等價於:x=
((
3+a>5
)
?
100
:
200
)

結合性

條件運算符具有右結合性
當一個表達式中出現多個條件運算符時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算符的運算對象。
例如:
w<x
?
x+w
:
x<y
?
x
:
y

w<x
?
x+w
:
(
x<y
?
x
:
y)
等價

(w<x
?
x+w
:
x<y)
?
x
:
y
不等價
----歡迎加入------c++部落------------Hello
Word!--------
無論你是初學者還是家,只要你熱愛編程、交流、分享,c++部落因為你而精彩~

B. c語言中":"(冒號)和問號是什麼意思

是問號和冒號一起嗎
bool a = 1>3?false:true;
?: 是三元運算符
由條件運算符組成的條件表達式的一般形式為:
表達式1 ? 表達式 2 : 表達式 3

其中表達式 1、表達式2、表達式3,既可以是一個簡單的表達式,又可以是由各種運算符組成的復合表達式。

計算過程很好理解:
先求表達式1的值, 如果為真, 則求表達式2 的值並把它作為整個表達式的值。 如果表達式1 的值為假, 則求表達式3 的值並把它作為整個表達式的值。

C. c語言中" "(冒號)和問號是什麼意思

你問的是問號表達式吧?a=1>0?1:0;它的意思就是1>0條件為真a=1,否則a=0

D. 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
};

從以上分析可以看出,位域在本質上就是一種結構類型, 不過其成員是按二進位分配的。
11

E. c語言中" : "(冒號)和問號是什麼意思

bool a = 1>3?false:true;

?: 是三元運算符由條件運算符組成的條件表達式的一般形式為:

表達式1 ? 表達式 2 : 表達式3,其中表達式 1、表達式2、表達式3,既可以是一個簡單的表達式,又可以是由各種運算符組成的復合表達式。

計算過程很好理解:先求表達式1的值, 如果為真, 則求表達式2 的值並把它作為整個表達式的值。 如果表達式1 的值為假,則求表達式3 的值並把它作為整個表達式的值。

(5)c語言問號冒號符號詳解擴展閱讀:

C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。

F. C語言裡面問號什麼意思:什麼意思

C語言裡面?、:是三木運算符,其中?用來判斷條件的真假,:用來根據判斷結果決定取值。

如(a<b)?a:b"是一個"條件表達式",如果a<b為真,則表達式取a值,否則取b值。條件運算符由"?"和":"兩個符號組成, 要求有3個操作對象,所以條件運算符也叫三目運算符。

條件表達式的一般形式為:表達式1?表達式2:表達式3

(6)c語言問號冒號符號詳解擴展閱讀

關於三目運算符的說明:

1、通常情況下,表達式1是關系表達式或邏輯表達式,用於描述條件表達式中的條件,表達式2和表達式3可以是常量,變數或表達式.例如:

(x==y)?'Y':'N'、(d=b*b-4*a*c)>=0?sqrt(d):sqrt(-d)、ch=(ch>='A'&&ch<='Z')?(ch+32):ch均為合法的條件表達式。

2、條件表達式的執行順序為:先求解表達式1,若值為非0,表示條件為真,則求解表達式2,此時表達式2的值就作為整個條件表達式的值;

若表達式1的值為0,表示條件為假,則求解表達式3,表達式3的值就是整個條件表達式的值。例如:(a>=0)?a:-a執行結果是a的絕對值。

3、在程序中,通過把條件表達式的值直接賦予某個變數.。例如:min=(a<b)?a:b執行結果就是將條件表達式的值賦予變數min,即將a和b二者中較小的數賦給min。

G. C語言中:x>yx:y; 是什麼意思問號和冒號的作用是什麼

如果x>y,就把x的值賦給z,否則把y的值付給z。

可以把z=x>y? x : y理解為

if(x>y){

z=x;

}else{

z=y;

}

(7)c語言問號冒號符號詳解擴展閱讀:

三目運算符,又稱條件運算符,是計算機語言(c,c++,java等)的重要組成部分。它是唯一有3個操作數的運算符,所以有時又稱為三元運算符。一般來說,三目運算符的結合性是右結合的。

對於條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e將按a ? b : (c ? d : e)執行。

可以理解為條件 ? 結果1 : 結果2 裡面的?號是格式要求。也可以理解為條件是否成立,條件成立為結果1,否則為結果2。

H. 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;

I. C語言運算符中問號是什麼意思

問號是條件運算符的意思,跟冒號組合使用。條件運算符優先順序高於賦值、逗號運算符,低於其他運算符。

表達式為:表達式1?表達式2:表達式3。先求解表達式1,若其值為真(非0)則將表達式2的值作為整個表達式的取值,否則(表達式1的值為0)將表達式3的值作為整個表達式的取值。


(9)c語言問號冒號符號詳解擴展閱讀

條件運算符具有右結合性

當一個表達式中出現多個條件運算符時,應該將位於最右邊的問號與離它最近的冒號配對,並按這一原則正確區分各條件運算符的運算對象。如果在問號和冒號之間還有一個問號或者冒號,應該滿足就近配對,使結構不發生紊亂。

例如:

w<x ? x+w : x<y ? x : y與 w<x ? x+w : ( x<y ? x : y) 等價。

w<x ? x+w : x<y ? x : y與 (w<x ? x+w : x<y) ? x : y 不等價。

J. C語言中,問號表示什麼意思

c語言運算符中問號是條件運算符(與冒號組合)。該運算符是c語言中唯一一個三目運算符。
可以通過如下的實例來說明條件運算符的用法:
int a=1, b=3;
int max;
max = a>b ? a : b; // 如果a>b,則max的值為a,否則max的值為b,也即取a與b中的較大者