C語言中,邏輯表示式是賦值語句時候是真還是假while(t s)ts什麼時候執行?不執行

2021-04-21 03:02:35 字數 5805 閱讀 2978

1樓:倒黴熊

賦值表示式的返回就是等號左邊的值,也就是說

while(*t=*s) 的意思是將 *s賦值給*t,然後判斷*t是真還是假。

到*s =0或*s='\0'的時候,這個迴圈就不成立,否則while迴圈成立。

2樓:匿名使用者

while(*t=*s)中的條件判來斷是*t=*s,而該表源達式bai是du一個賦值表示式,而該表示式的返回值是賦值後左值的zhi

值,即dao賦值後*t的值作為該表示式的值,用它作為邏輯判斷,規則是賦值後*t的值為非0時為真,賦值後*t的值為0時則為假。

3樓:匿名使用者

表達bai式也是有值的,邏輯表示式

du的值zhi

是邏輯判定結果dao大家都懂的。。內但是這裡用容賦值表示式來代替了邏輯表示式,一個賦值表示式的值實際上是賦值號右邊的值,這裡就是*s的值,c語言中,只有0和null會被判定為false,不為0的值在這種判定中都被判為true

4樓:匿名使用者

每個資料都對應一個地址

當地址t和地址s內的數相等時執行

地址t和地址s加1繼續比較直到不相等為止

比如執行完後 t=102 s=88

c語言中while(*s++=*t++)等價於什麼?

5樓:匿名使用者

*s++=*t++//這是一個賦值語來

句,返回值是源*s++因此,bai括號裡的一定是du*s

while語句的停止條件zhi是表示式

不成立。但既dao然while判斷了表示式,那表示式的結果就會被運算一次,而每運算一次會讓*s++,*t++。也就是說,在退出迴圈的時候,s和t還加了1。

但是c選項中,只有*s不為0才會讓*s++,*t++。所以最後一次沒有加。

故答案選擇b

6樓:匿名使用者

while(*s++=*t++)

這裡實現了bai四個操作。

1 *s = *t, 即將

dus指向記憶體

zhi賦值為t指向記憶體的值

dao;

2 執行回s的自加

答操作;

3 執行t的自加操作;

4 判斷執行自加前的*s值,如果*s為0,那麼退出迴圈。

可以寫成等價的for迴圈。

for(; *s; s++, t++)

*s = *t;

7樓:劉文正粉絲

因為, c它是. 如果s指向的變數為0, 那*s, 就是假.那麼*s++=*t++就不會執行.

但是, while(*s++=*t++)它是先把t自加版後的值(不清權楚是先自加還是先取值), 然後賦給*s++, 那麼*s的值就是*t++的值了, 所以while是否迴圈取決於*t++的值.

而while(*s)它明顯是取決於*s

再看c,

do while是必然先執行的, 然後再判斷是否繼續迴圈, 所以這時*s++就等於*t++了

8樓:正在輸入密碼

請問你這道題目是在哪個平臺做的

c語言中,while()語句括號內可以是賦值語句嗎?

9樓:匿名使用者

while()語句括號中是一個邏輯表示式,用以判斷while迴圈是否需要繼續執行。可以是賦值語句。

while迴圈的一般格式為:

while(expr)

其中用來判斷迴圈條件的expr可以是任意表示式。當其是賦值語句的時候,含義為,先執行賦值語句,然後對左值進行判斷。如果左值為0則expr為假,while退出;否則expr為真,while繼續迴圈。

不過直接用賦值語句做expr時,編譯器可能為認為賦值操作符=是等於判斷符==的誤寫,這時編譯器可能會報一個警告(warning),編譯器是否報警,及報警告還是錯誤(error)取決於編譯器設定。為避免這種情況,可以用while((var = expr))的形式,告知編譯器就是要先賦值再判斷,編譯器就不會理會了。

下面是舉一個例子用來輔助說明。

函式功能,將引數字串中的所有值按照ascii碼進行累加,獲取校驗和,溢位後只取低位元組值。

char sum(char* p)

return c;//返回校驗和}

10樓:匿名使用者

可以,不但可以還可以寫多個語句,

int a=5,b=2;

while(b=a,b-=1)

{cout<是隻判斷最後一句,兩句之間用,不能用;

11樓:天外流星

可以,比如:

int a=0;

while(a=1)//這樣會造成死迴圈,因為括號裡的最終值為1,非0,代表真,所以會一直迴圈

c語言中while的用法

12樓:加百列

c語言中while的用法解析如下:

一、1表示true,在bool型別取值false和true,0為false,非0為true(例如-1和2都是true)。程式中,這裡1就表示永真,直到迴圈體內遇到break。

二、while用法演示解析:

1、含義:while 迴圈會在指定條件為真時迴圈執行**塊。

2、語法如下:(如果忘記增加條件中所用變數的值,該迴圈永遠不會結束。該可能導致程式崩潰。)

3、例項:

例中的迴圈將繼續執行,只要變數 i 小於 5:

4、執行結果如下:

13樓:匿名使用者

這裡的1表示真,是bool型別,非0為真。程式當中while(1)裡括號內是判斷條件,整型1轉為bool型後結果為true,所以判斷條件為真,接著做下面的語句。

bool表示布林型變數,也就是邏輯型變數的定義符,以英國數學家、布林代數的奠基人喬治·布林(george boole)命名。布林型變數的值只有 真 (true) 和假 (false),0為false,非0為true(例如-1和2都是true)。

布林型變數可用於邏輯表示式,也就是「或」「與」「非」之類的邏輯運算和大於小於之類的關係運算,邏輯表示式運算結果為真或為假。

比如:#include

using namespace std;

int main()

14樓:小肥仔

1就是真。

while()迴圈括號裡只有2種值,0和非0,0表示假,非0表示真。真就進入迴圈,假就離開迴圈。這裡1就表示永真,直到迴圈體內遇到break。

while是計算機的一種基本迴圈模式。當滿足條件時進入迴圈,進入迴圈後,當條件不滿足時,執行完迴圈體內全部語句後再跳出(而不是立即跳出迴圈)。while語句的一般表示式為:

while(表示式)。

擴充套件資料:

c++的特性

2023年12月8日,國際標準化組織(iso)和國際電工委員會(iec)再次釋出了c語言的新標準,名叫iso/iec 9899:2011 - information technology -- programming languages -- c,簡稱c11標準,原名c1x。這是c語言的第三個官方標準,也是c語言的最新標準。

新的標準提高了對c++的相容性,並增加了一些新的特性。這些新特性包括:

對齊處理(alignment)的標準化(包括_alignas標誌符,alignof運算子, aligned_alloc函式以及標頭檔案。

_noreturn 函式標記,類似於 gcc 的 __attribute__((noreturn))。

_generic 關鍵字。

多執行緒(multithreading)支援,包括:

_thread_local儲存型別識別符號,標頭檔案,裡面包含了執行緒的建立和管理函式。

_atomic型別修飾符和標頭檔案。

增強的unicode的支援。基於c unicode技術報告iso/iec tr 19769:2004,增強了對unicode的支援。

包括為utf-16/utf-32編碼增加了char16_t和char32_t資料型別,提供了包含unicode字串轉換函式的標頭檔案.

刪除了 gets() 函式,使用一個新的更安全的函式gets_s()替代。

增加了邊界檢查函式介面,定義了新的安全的函式,例如 fopen_s(),strcat_s() 等等。

增加了更多浮點處理巨集。

匿名結構體/聯合體支援。這個在gcc早已存在,c11將其引入標準。

靜態斷言(static assertions),_static_assert(),在解釋 #if 和 #error 之後被處理。

新的 fopen() 模式,(「…x」)。類似 posix 中的 o_creat|o_excl,在檔案鎖中比較常用。

新增 quick_exit() 函式作為第三種終止程式的方式。當 exit()失敗時可以做最少的清理工作。

15樓:韓苗苗

while表示的是迴圈,使用的標準格式為:

while(表示式)

其中表示式是迴圈進行的條件

在此程式中,while(1)表示的是無限迴圈。

擴充套件資料while是計算機的一種基本迴圈模式。當滿足條件時進入迴圈,進入迴圈後,當條件不滿足時,執行完迴圈體內全部語句後再跳出(而不是立即跳出迴圈)。while語句的一般表示式為:

while(表示式)。

參考資料

16樓:英格拉姆

while語句的一般形式為:

while(表示式) 語句

其中表示式是迴圈條件,語句為迴圈體。

while語句的語義是:計算表示式的值,當值為真(非0)時, 執行迴圈體語句。其執行過程可用下圖表示。

【例6-2】用while語句計算從1加到100的值。用傳統流程圖和n-s結構流程圖表示演算法,見圖:

拓展資料:

c語言c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。

儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規格寫出的c語言程式可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(微控制器或稱mcu)以及超級電腦等作業平臺。

17樓:程式設計師的每一天

c語言迴圈結構之while迴圈語句

18樓:書蕾表壬

r=l->next;while(r)

這個是連結串列的判斷;如果l->next;是指向連結串列的尾部就是:『\0』;把這個賦給r;while(r);如果為0;就結束,如果不為0繼續;這裡應該是要用於輸入或者輸出,要不然就是刪除插入;

19樓:公西駿奇愛齊

親,這個不是通常c語言的語法,是嵌入式c的語法,你這個應該是微控制器之類的程式吧。

這裡的while迴圈的作用其實就是等待p1_3引腳的低電平結束的(注意,迴圈的執行條件是(p1in

&bit3)==0x00,也就是隻要p1_3引腳電平為低,迴圈就持續執行,當引腳電平為高時,跳出迴圈,執行a2=(a2+1)%2)。

20樓:天曼安周聖

如果p1in或bit3兩個變數有一個等於0x00,則進入while迴圈

,while的內部迴圈是:a2=(a2+1)%2即變數a2+1後對2取模後的值賦值給變數a2while迴圈的條件式是(p1in&bit3)==0x00即p1in或bit3任何一個變數等於0x00即跳出while迴圈,繼續執行後面的程式

另外,我怎麼看著你貼出的**有點彆扭啊,語法有點問題,邏輯上也不循常理

C語言表示式105的值是C語言中表示式105的值是?

是1。根據c語言運算規則,檢查左運算元的值是否小於右運算元的值,如果是則條件為真。1 0 5是先執行1 0 false 結果為0,再執行0 5 true 因此結果為1。如下 表示式的值為1 根據運算子表,是從左往右結合的。先看1 0是假,返回0。原式就變成 0 5,是真,返回1 所以結果就是 1。擴...

賦值語句與賦值表示式的區別

賦值語句是由賦值表示式再加上分號構成的表示式語句。其一般形式為 變數 表示式 賦值語句的功能和特點都與賦值表示式相同。它是程式中使用最多的語句之一。在賦值語句的使用中需要注意以下幾點 1.由於在賦值符 右邊的表示式也可以又是一個賦值表示式,因此,下述形式 變數 變數 表示式 是成立的,從而形成巢狀的...

c語言中while()表示式的疑問

你可以避開0啊,用其他數字代替。或者while x 0 0 100是真。非0即真。表示式為真也是真,如x 4,y 6,x y則是假。這個很簡單,例如定義一個變數int a 然後判斷當a為0時才進入迴圈如下 while a 0 這樣當a為0時就執行迴圈了,因為當a為0時,while 中表示式的邏輯運算...