變數在賦值之後如果越界了會怎樣?

2022-04-11 19:03:12 字數 587 閱讀 7019

看到乙個題目:

unsigned char i,j;

for(i=0,j=2;i!=j;i+=5,j+=7)

unsigned char範圍是0-255,在此範圍內一輪迴圈兩個值i與j不可能相等,但是在後面可能會相同,但是比如 i=253,這時候i+5=258>255此時i到底是多少?

執行後知道:j=250 ,j=1;  

j=253,   j=4;

j=254,   j=5;

i=254,   i=3;

i=255,   i=4;

一目了然了,注意255完了之後有個0.

稍作修改,把unsigned char 改為char,char範圍:-128 ~ 127

執行結果:

j=121,   j=-128;

j=-2,     j=5;

j=124,   j=-125;

j=-6,     j=1;

i=125,   i=-126;

i=-1,     i=4;

i=124,   i=-127;

i=-2,      i=3;

嗯。因為位運算的結果,暫時先記這麼多吧

在Flask中使用模板變數,並賦值

處為模板變數的名字,模板變數使用兩個花括號表示 2 python程式 匯入flask模組 from flask import flask,render template 使用定義的flask方法來定義路由 def 使用return函式來返回結果,記得使用render template 並使用rend...

我在經歷了100個hr之後 嵌入式面試

我今天在網上投了100份簡歷,下面給大家總結一下嵌入式方面經常問到的問題 講一下stm32的時鐘系統 c語言中堆和棧的區別 推挽輸出是什麼?你會用linux嗎?const 這個東西 你來解釋一下 你用過什麼感測器 講一下can 什麼是spi iic熟悉嗎?假如乙個微控制器上電之後不執行?這是為什麼?...

在make中有四種方式對變數賦值

在make中有四種方式對變數賦值 這種方式叫做 簡單展開 因為在讀到makefile中的這一行時 等號右邊就立即被展開了,等號右邊引用的所有變數 如例子中的cc 也會被立即展開。其行為與一般程式設計和指令碼語言相同。當等號右邊引用的變數 如例子中的cc 還沒有被定義時,它被展開成空 nothing ...