這個問題在這里已經有了答案: 問號字符 ('?') 在 C 中是什么意思? (7 個回答) 3 天前關閉。
今天我的老師正在教我們如何使用 C 中的指標來模擬這種編程語言的一些常見函式,他的一個例子是創建的rev_string函式(如下所示),它是為了模擬頭檔案中的原始函式而創建strrev()的<string.h>。
void rev_string(char *s)
{
char *t;
int counter = 0, middle, temp, i, j, last, begin;
for (t = s; *t != '\0'; t )
counter ;
middle = (counter % 2 == 0) ? (counter / 2) : ((counter - 1) / 2);
j = counter - 1;
for (i = 0; i < middle; i )
{
last = s[j];
begin = s[i];
temp = last;
s[j] = begin;
s[i] = temp;
j--;
}
}
看了幾遍上面的代碼,還是想不通變數里面宣告的?和用法。誰能解釋一下為什么上面的代碼中需要這些符號?:middle
uj5u.com熱心網友回復:
這是條件運算子。它是一個三元運算子,其形式為“條件? if-part : else-part ”。
它評估它的第一部分。如果結果非零,則計算第二部分并成為運算式的結果,否則計算第三部分并成為運算式的結果。
所以這:
middle = (counter % 2 == 0) ? (counter / 2) : ((counter - 1) / 2);
相當于:
if (counter % 2 == 0) {
middle = (counter / 2);
} else {
middle = ((counter - 1) / 2);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/356264.html
