c語言賦初值
Ⅰ c語言指針賦初值問題
int
*p1=0,*p2=0,*p3=0;這里賦的是地址,指針都指向地址為0的空間就是空指針,沒有實體存在,所以後便全錯了。
#include
#include
void
main()
{
int
*p1=(int
*)malloc(sizeof(int)),*p2=(int
*)malloc(sizeof(int)),*p3=(int
*)malloc(sizeof(int)),*c;
*p1=0;
*p2=0;
*p3=0;
printf("請輸入任意三個整數(中間以空格隔開:)");
scanf("%d
%d
%d",p1,p2,p3);
if(*p1>*p2)
{c=p1;p1=p2;p2=c;}
if(*p2>*p3)
{c=p2;p2=p3;p3=c;}
if(*p1>*p2)
{c=p1;p1=p2;p2=c;}
printf("%d,%d,%d\n",*p1,*p2,*p3);
}
一樓說的是對的,回答問題是並行的,早知道他答了,我就不回答了,還有你的數值交換還存在很大的問題。你自己看看吧。
Ⅱ c語言中定義變數不賦初值是多少
沒有加static,默認為auto 型,此時,不給初值,變數的初值是隨機的。
如果加了static不給初值,變數的初值是默認的 0。
其實不能說不賦初值就不行,對於局部變數,不賦初值的話,其實他裡面存的是一個隨機的值,誰也不知道他是多少,因此如果沒賦初值的情況下就使用它,程序是完全不可控的,如你的圖1,直接在while里去判斷b了,因此這個while判斷是不可控的。
【c語言】
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言訂定了一套完整的國際標准語法,稱為ANSI C,作為C語言最初的標准。
Ⅲ c語言如何給一個大數組賦初值
有3種方法。
1.
將數據保存到文件中,再直接從文件讀取。
2.
因為是二維字元數組,可以直接用字元串賦值,如:
char strs[2][11]=
{
"123456",
"asd"
};
3.
將所有數據定義成宏,再賦值,如:
#define data { \
{'a','b','c'}, \
{'a','1',b','c','5'} \
}
char str[2][11]=data;
Ⅳ C語言中怎麼給數組賦初值
inta[5]={1,2,3,4};
charb[]="abcdefg";
數組定義時可以直接賦值初始化。
如果在定義之後,要麼通過循環語句一個一個賦值,要麼使用內存操作函數統一初始化。
Ⅳ c語言里變數的"初始化"和"賦初值"一樣嗎
語法上的初始化是指對象定義時,對應的分配空間之後對於值的操作。C語言中,靜態和全局變數默認置0,有初始化列表的復制初始化列表的值到空間(如有不足,剩餘部分置0),局部自動變數可以不初始化(調試器參與時可能被隱式地初始化為其它的值("debug magic number"),例如默認情況下Microsoft C/C++ Debugger會把棧中未初始化的位元組置為0xCC)。
賦初值一般而言是指邏輯意義上的初始化。在C語言中,由於初始化的語法是「=」後加初值,所以「賦初值」基本上就是指語法上的初始化。不過隨著語言的發展,「賦初值」的意義發生了擴大。對有構造語義但又允許不初始化而不產生編譯錯誤的程序設計語言而言,兩者有些微妙的差別。例如C++的構造函數中,用若干個成員名和括弧括起來的初始化值構成的初始化列表是語法上的初始化(也可能是邏輯意義上的初始化,如果沒有被構造函數體內的值覆蓋),而構造函數體中對成員的賦值語句是邏輯上的初始化但不是語法上的初始化。
冰的悸動 錯誤:
1.「程序開始時進行初始化」的說法僅僅適用於靜態或全局變數,而不適於局部自動變數。局部自動變數在函數調用時才能被初始化。
2.「但是根據編譯器的不同有些編譯器會自動賦初值0或其他」——這在ISO/IEC C語言標准中不是由實現定義的行為,如果一個編譯器符合標准,那麼行為就是明確的,即視此初始化的對象是否為全局對象來判斷隱式初始化置0還是不進行初始化——從下面的函數定義來看這里應該var2是全局變數,會被置0。非標准編譯器則另當別論(但是我還沒見過會在這點上沒事找茬的)。
Ⅵ 什麼是c語言裡面的賦初值
通俗點???
例如:
你買了一支筆,當你買到手的時候,商家已經給這根筆加了一根藍色的筆芯。
筆就是變數;
筆芯就是商家給筆賦的初值。
另:賦值
當你不想用藍色想用黑色時,
根據筆規格(變數類型)找到適合的黑色筆芯就可以了。
不用另外再買一支筆。
Ⅶ C語言中的定義變數賦予初值
不是的,在局部變數默認是auto的,初始值是隨機的,只有外部變數或者是static默認值才是0
Ⅷ c語言中如何給數組定義並賦初值
字元串數組定義賦值:
char c[6]={'c', ' h ', 'i', 'n', 'a' , '