導航:首頁 > 源碼編譯 > 不賦初值能不能通過編譯

不賦初值能不能通過編譯

發布時間:2022-06-19 03:03:02

① 請問$n為什麼要賦初值不賦值就沒有輸出……

不是必須的,不賦值,再有些時候會出錯。。

1、給指針變數賦初值在語法上是沒有錯誤的,編譯執行也可以通過,但是一旦代碼量增多後,很容易造成指針的錯用,為了防止這一問題最好將指針變數定義的時候就置成NULL,這樣做是為了代碼安全著想。
2、指針定義後就會隨機指向一個位置的,編譯的時候也不會提示錯誤,程序短很容易找出來,長了多了就難找了,所以這是一個好習慣吧。

② c++中定義一個變數一定要賦初值嗎

不一定。
是否賦初始值是按照編程的實際需要來確定的。
1 對於全局變數和局部靜態變數,如果沒有初始化值,那麼系統默認賦值為0。所以當這類變數的初始值要求為0,或者不關心初始值時,定義時不需要賦初值,這樣可以提高效率。

2 對於局部變數,如果沒有賦初值,那麼默認為隨機值,即什麼值都有可能。
對於此類變數,如果其初值不重要,或者不會影響程序結果,比如在定義後,下一步就是對其進行輸入等從其它渠道獲取值的代碼,那麼可以不賦初值。

③ C語言:為什麼變數j不賦初值程序就運行失敗

道理簡單——這段代碼中j在if語句中賦值,若if不成立,那麼j就沒有被正確賦值,這時若j沒有初始化,j就是機器垃圾值,所以要出錯。一句話,變數當右值使用前必須有確定值,使用沒有初值的變數當右值是C之大忌!

④ C語言:數組沒初始化也沒賦值,編譯系統是否能給沒賦值的元素自動(數值型)賦0值或(字元型)賦'\0'值。

不會。利用下面這個程序測試一下就知道了:
#include <stdio.h>
#define Times 40

void main()
{
long x[Times];
int a;

// 測試系統會不會自動為數組賦值
for(a=0;a<Times;a++)
{
printf("第%2d個月:%d\n", a+1, x[a]);

if ((a!=0) && (a%10 == 0))
printf("\n");
}

// 求值
x[0] = 1;
x[1] = 1;
for(a=2;a<Times;a++)
x[a]=x[a-1]+x[a-2];

// 輸出結果
for(a=0;a<Times;a++)
{
printf("第%2d個月:%d\n", a+1, x[a]);

if ((a!=0) && (a%10 == 0))
printf("\n");
}
}

⑤ C語言中定義一個變數,不給它賦值。它會有值嗎若有是多少

沒有加static,默認為auto 型,此時,不給初值,變數的初值是隨機的。

如果加了static不給初值,變數的初值是默認的 0。

不能說不賦初值就不行,對於局部變數,不賦初值的話,其實裡面存的是一個隨機的值,誰也不知道是多少。

(5)不賦初值能不能通過編譯擴展閱讀:

在C語言中,如果按存儲佔用空間來分,包括:

整型變數(代碼為int),整型變數包括長整型變數(代碼為longint)以及短整型變數(代碼為shortint),字元型變數(代碼為char),浮點型變數(代碼float)等。

聲明變數時,可以不用聲明就直接賦值來決定變數類型的語言,這類語言變數的聲明通常被稱為弱類型,而如(c++等)必須先聲明,後使用,而且聲明時必須確定變數類型,這種就是嚴格的數據類型。

⑥ c語言中定義變數不賦初值是多少

沒有加static,默認為auto 型,此時,不給初值,變數的初值是隨機的。
如果加了static不給初值,變數的初值是默認的 0。

其實不能說不賦初值就不行,對於局部變數,不賦初值的話,其實他裡面存的是一個隨機的值,誰也不知道他是多少,因此如果沒賦初值的情況下就使用它,程序是完全不可控的,如你的圖1,直接在while里去判斷b了,因此這個while判斷是不可控的。

【c語言】

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言最初的標准。

⑦ 什麼jdk版本之後局部變數必須賦初值,不然無法通過編譯

沒有要求必須初始化(我的是1.8),是要求如果後面用到了的話,則必須初始化。所以,你代碼後面肯定是用到了,但是編譯器無法認可你用之前必然經過初始化(比如你的賦值語句在if里,編譯器就不能保證必然會進入if語句,也就會判斷可能出現沒有初始化的情況)

⑧ C語言!倒數第六行,為什麼j沒有賦初值,仍可以進行自加操作,而且整個程序在VC++6.0上可以正確

沒有賦初值,可以進行++操作,不沖突啊。
根據編譯器而定,如果是VC++的Release版,沒有賦初值的變數,都會被初始化為0。其他編譯器也差不多,最多不過遇到的就是內存中初始化之前的數據成了一個未知的可能是任何值的數而已,

java中使用static聲明的變數是否必須賦初值

你自己上機實驗下不就知道了。不必賦初值的(可以通過編譯,也可以運行,調用的時候,系統會默認給他值)
但是按照規范寫法,還是要附個初值給他,無論給任何變數賦值,都最好要給他附一個初值。

⑩ C語言問題

指針必須指向具體位置才有意義,所以必須賦值才能使用。編譯器為了防止錯誤,攔截未賦值指針通過編譯。
但實際應用中,確實有需要無特定指向的指針,這時可以賦值null(底層數據記作0,表示空指針),告知編譯器,這是你的主觀設計,不是遺漏失誤。

閱讀全文

與不賦初值能不能通過編譯相關的資料

熱點內容
手機上如何用文件夾發郵件 瀏覽:424
暢課app密碼忘了怎麼找回 瀏覽:75
怎麼編譯idea 瀏覽:229
如何查看伺服器是否做了熱備 瀏覽:999
硬碟同名文件夾病毒 瀏覽:727
百度雲不解壓下載 瀏覽:560
新冠疫情app怎麼用 瀏覽:971
拆二代程序員 瀏覽:398
河北壓縮空氣冷干機生產廠家 瀏覽:580
圖論與java 瀏覽:577
程序員寫代碼告白初音 瀏覽:740
sshpdf 瀏覽:539
windows調用linux 瀏覽:594
如何查找本地伺服器名稱 瀏覽:819
linux文件只讀屬性 瀏覽:585
VNAS技術加密 瀏覽:131
python編程電話費計算話費 瀏覽:463
c編譯文件怎麼改名 瀏覽:626
pdf轉格式軟體 瀏覽:875
單片機原理及應用第二版第八章答案 瀏覽:536