c語言中如果定義變數但不對其進行賦值那

時間 2021-05-07 20:00:39

1樓:念憶

因為字元變數在記憶體中存放的是其對應的ascii值,比如說字元『a』ascii值是97。

printf("%d",ch);

char ch='a';

輸出結果就是97了。所以對於字元變數也可以這樣理解:是單位元組的整型變數。所以當然可以對一個字元變數賦值一個1啊。

在表示式方面較其它程式語言更為簡潔,如自加、自減、逗號運算和三目運算使表示式更為簡單,但初學者往往會覺的這種表示式難讀,關鍵原因就是對運算子和運算順序理解不透不全。

2樓:

作業系統**記憶體單元后並不會清除其內容,當程式執行時需要為變數分配空間時就從這些**的單元中分配,因此變數不賦初值,其值是不確定的。在不同的時刻執行,輸出不同;在不同的機器上執行,輸出也會不同。

3樓:匿名使用者

當這個程式執行時,他會給a和b各分配一個記憶體單元,由於你未對啊a,b初始化或賦值就直接輸出,此時a的值就是a所在的記憶體值,由於程式每次分配的記憶體單元都是隨機的,所以每次輸出的值也都是隨機的,即值是不確定的。

4樓:echoの忽忽

樓主定義了整型變數a,系統就會為它在記憶體中分配一個空間,就相當於你拿到了一個盒子,但是你沒有對這個變數賦值,所以這個盒子是空的,至於輸出的數值其實是沒有實際意義的。

5樓:善·化

如果你不給變數賦值直接輸出的話,變數中的值是隨機的,與你使用的編譯系統和機器有關,沒什麼實際意義。

6樓:

其實這涉及到計算機的儲存機制 首先你必須明白計算機儲存介質上並不是清白的 相反是存放了很多以前運算的無用資料的 當你寫了int a的時候 系統就把這片無用資料的空間給了a存放數值 如果你賦初值的話 他就可以把原始的無用資料的值覆蓋掉 但是你沒有 所以就是隨機的無用資料值 。但是聽說一些高階 最新版的編譯器可以自動把儲存空間清零的。

7樓:匿名使用者

因為你沒有對其進行初始化,所以他的值是一個隨機量。沒有什麼意義。

c語言中define巨集定義和變數定義的聯絡和區別

巨集定義是全域性性的,變數定義是區域性性的, 巨集定義主要在預處理階段完成,由前處理器進行字元替換,變數定義則會在記憶體中為變數分配地址。 吉檀迦利 define巨集定義的量是做常量處理的,如 define price 30,下文只要遇到price就代表常量30,他與變數的區別之一是在書出語句中pr...

c語言中變數的平方怎麼輸入,C語言中變數的平方怎麼輸入

天雲一號 在c 中,變數a的平方可以有2種方式進行輸入 1 直接本身相乘a a 2 用函式pow進行求變數a的平方,即pow a,2 注 函式pow的用法如下 函式格式 double pow double x,double y 功 能 計算x的y次冪 返 回 值 計算結果 當使用pow函式時,需要將...

c語言中定義變數的資料型別比如intchar有

1.首先你要多看看記憶體管理方面的內容。記憶體是由系統管理的,int和char,如果是常量那麼他們會被分配到常量區,如果是靜態變數,會被分到靜態變數區,區域性變數,又不一樣。不同的定義,記憶體地址肯定是不同的,這個系統自己管理。2.沒影響。但對執行時所佔空間就就有影響。源程式檔案大小隻是 量的大小 ...