Ⅰ c語言中":"(冒號)和問號是什麼意思
是問號和冒號一起嗎
bool a = 1>3?false:true;
?: 是三元運算符
由條件運算符組成的條件表達式的一般形式為:
表達式1 ? 表達式 2 : 表達式 3
其中表達式 1、表達式2、表達式3,既可以是一個簡單的表達式,又可以是由各種運算符組成的復合表達式。
計算過程很好理解:
先求表達式1的值, 如果為真, 則求表達式2 的值並把它作為整個表達式的值。 如果表達式1 的值為假, 則求表達式3 的值並把它作為整個表達式的值。
Ⅱ C語言裡面問號什麼意思:什麼意思
C語言裡面?、:是三木運算符,其中?用來判斷條件的真假,:用來根據判斷結果決定取值。
如(a<b)?a:b"是一個"條件表達式",如果a<b為真,則表達式取a值,否則取b值。條件運算符由"?"和":"兩個符號組成, 要求有3個操作對象,所以條件運算符也叫三目運算符。
條件表達式的一般形式為:表達式1?表達式2:表達式3
(2)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。
Ⅲ C語言中,問號表示什麼意思
c語言運算符中問號是條件運算符(與冒號組合)。該運算符是c語言中唯一一個三目運算符。
可以通過如下的實例來說明條件運算符的用法:
int a=1, b=3;
int max;
max = a>b ? a : b; // 如果a>b,則max的值為a,否則max的值為b,也即取a與b中的較大者
Ⅳ c語言中對文件的操作,解釋帶問號語句
看代碼中注釋
不懂處再追問
intbrowse(char*key,fpos_t*p,CON*s)
{
FILE*f=0;//定義一個空文件指針相當於FILE*f=NULL;
inti=0,r=0;CONt;
char*a=0,*b=0;fpos_tq;//這里是三個變數定義a,b為字元指針char*型,並賦值為空(NULL).q為fpos_t型,可以認為是int無初始化值
if(!s)//判斷傳入參數等同於if(s==NULL)即如果傳入的s指針為空則直接返回
return0;
f=fopen(fileDB,"rb");
if(!f){
printf("資料庫暫無記錄 ");
return0;
}/*endif*/
printf("編號 姓名 單位 電話 電郵 ");
printf("------------------------------------------------ ");
while(!feof(f))//判斷是否達到文件結尾。如達到文件結尾(feof(f)=true)則退出循環不再讀文件
{
fgetpos(f,&q);//獲取當前文件偏移即讀取文件到哪個位元組了
r=fread(&t,sizeof(t),1,f);//從文件中拂去sizeof(t)個位元組數據並存到變數t中
if(r<1)break;
if(t.name[0]==0)
continue;
if(key)
{
a=strstr(t.name,key);//從t.name中查找是否存在key子串如果存在返回key所在的地址,不存在返回NULL
b=strstr(t.tele,key);
if(a==0&&b==0)//t.name和t.key中都沒有key
continue;
}/*endif*/
if(p)*p=q;
if(s)memcpy(s,&t,sizeof(t));//復制t中的數據到s中。由於剛進函數時判斷過s所以這里的if(s)是多餘的
i++;
show(i,&t);//這個不是系統函數應該是自定義的。從命名上看應該是列印t中數據的值
}/*endwhile*/
fclose(f);
printf("------------------------------------------------ ");
returni;
}/*endbrowse*/
綜合: 這個函數就是從fileDB中讀取數據,並查找每一項 如果在t.name或者t.tel中存在key值(檢索關鍵字)則在參數s中返回查找到的條目,並在參數p中返回該條目所在的偏移量。 該函數返回值為查找到的符合條件的總條目數
存在的問題:如果在fileDB中存在超過一條的符合數據,只會返回最後一條的詳細數據
如果沒有找到 則p和s值都不會改變 只有通過返回值才能判斷出查找失敗
Ⅳ 在C語言中的問號是什麼意思
你的
問號
是不是放錯地方了?那個語句應該是判斷是否大於等於吧?
是返回1,不是返回0;
Ⅵ c語言中" : "(冒號)和問號是什麼意思
bool a = 1>3?false:true;
?: 是三元運算符由條件運算符組成的條件表達式的一般形式為:
表達式1 ? 表達式 2 : 表達式3,其中表達式 1、表達式2、表達式3,既可以是一個簡單的表達式,又可以是由各種運算符組成的復合表達式。
計算過程很好理解:先求表達式1的值, 如果為真, 則求表達式2 的值並把它作為整個表達式的值。 如果表達式1 的值為假,則求表達式3 的值並把它作為整個表達式的值。
(6)c語言問號語句用法擴展閱讀:
C語言包含的各種控制語句僅有9種,關鍵字也只有32 個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
Ⅶ C語言問號表達式
……?……:……
式A?B:C值為:若A為真,則B;若A為假,則C。
但有一點是值得注意的,那就是問號表達式的結合性,問號表達式是從右往左的運算方向
尤其是當問號表達式嵌套使用時得注意這個問題,例如
代碼:
int a=1,b=2,c=3,d=4;
printf("%d",a<b?a:c<d?c:d);
正確結果是:1
因為先執行的是c<d?c:d,會返回c,然後執行a<b?a:c
因此得到的結果就是1(可以在編譯器上實驗一下)