『壹』 c語言函數變數傳遞值修改!
直接傳入B的指針就行了
比如
intmain()
{
intvalue(intc);
inta;
intb;
a=1;
b=2;
value(&b);
}
intvalue(int*c)
{
*c=119;//這時b的值也修改成了119
}
『貳』 我要改變全局變數的值 C語言
對於全局變數,如果在函數中修改了值,則全局變數的值就會被改變,在其他函數中訪問的就是修改後的值;
但是,如果在函數中定義了跟全局變數名稱一樣的局部變數,則函數中修改的是局部變數,全局變數的值是無法被修改的。
『叄』 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語言是一種強類型語言,要求在使用數據前需要對數據的類型進行聲明;
變數的定義就是創建一個變數,這個變數按照指定的數據類型分配一塊內存空間並給它取上一個名字,這個名字就是變數名,變數名和分配的內存塊是綁定起來的,程序員通過變數名對這塊內存進行存取操作。所以如果修改了變數名就不知道該變數所指的內存塊是哪裡了。
變數分為全局變數,局部變數,靜態變數等,每種變數的存放位置是不一樣的;如全局變數存放在靜態存儲區 ,局部變數存放在棧里做臨時存儲
『伍』 c語言如何通過函數來改變已經賦初值的全局變數的值
#include
#include
int
value
(int*
c)//c為形參,通過傳遞實參的地址&b,改變實參的值
{
*c
=
119;
/*怎麼樣把傳遞的b變數值修改成自己想要的值?
比如主函數int
main
裡面的變數b改成119;
主函數調用b就變成了119*/
}
int
main(){
int
value
(int
*
c);
int
a;
int
b;
a=1;
b=2;
value
(&b);
printf("%d\n",b);
//system("pause");
return
0;
}
『陸』 怎樣在C語言中修改字元串的一個字元的值
根據字元串存儲的變數的不同,方法不同,參考代碼:
存儲在char數組中(支持C/C++)
char
str[]="hello"
;
int
i;
for(
i=0;str[i];i++
)
printf("%c\n",
str[i]
);
//以數組方式引用一個字元:str[i]
for(
i=0;*(str+i);i++
)
printf("%c\n",
*(str+i)
);
//以指針方式引用一個字元:*(str+i)
存儲在string中(僅支持C++)
string
str="abcde";
for(string::iterator
iter
=
s.begin();
iter!=s.end();
iter++)
//使用迭代器
{
cout<<*iter<<endl;
}
cout<<endl;
for(
int
i=0;i<s.length();i++
)
{
cout<<s[i]<<endl;
//使用數組方式調用,得到單個元素
}
『柒』 C語言中修改變數的表達式
c中不支持這種操作。
變數是保存數據的地方,當我們需要在程序里保存數據時,比如下面的例子中要記錄用戶輸入的價格,就需要一個變數來保存它.用一個變數保存了數據,它才能參加到後面的計算中。一個表達式是一系列運算符合運算元的組合,用來計算一個值。
『捌』 C語言中如何改變全局變數的值
將 char A[100]={"glad to see you"};
改為 strcpy(A, "glad to see you");
同時,在文件開頭包含
#include<string.h>