關(guān)于X的賦值
#include <stdio.h>
int x = 77;
void fn1()
{
? ? printf("fn1(): x=%d\n", x); ? ? ??
}
int main()
{
? ? int x = 10; ?//x在這里賦值為10,在下一行判定為大于所以運(yùn)行if括號(hào)里的代碼
? ? if(x>0)
? ? {
? ? ? ? int x = 100; //x被賦值為100
? ? ? ? x /= 2; //在這里計(jì)算到結(jié)果x=50
? ? ? ? printf("if語(yǔ)句內(nèi), x=%d\n", x); ? ? ??
? ? } //跳出if語(yǔ)句,在這里x是否重新被賦值為10
? ? printf("main方法內(nèi), x=%d\n", x);
? ? fn1();
? ? return 0;
}
運(yùn)行結(jié)果:
if語(yǔ)句內(nèi), x=50
main方法內(nèi), x=10
fn1(): x=77
在運(yùn)行完if語(yǔ)句后跳出是否重新被賦值為x=10??
2015-09-18
最開(kāi)頭的那個(gè)值為77的x ?和 main函數(shù)中初值為10的x 和 if中的那個(gè)x 是三個(gè)不同的變量,只是同名而已。
在if中改變的是if中的那個(gè)x值,不會(huì)影響到main中的那個(gè)x,也不會(huì)影響到前面的那個(gè)x,所以沒(méi)有什么“重新賦值”一說(shuō)。
只有fn1函數(shù)中沒(méi)有再次定義x,所以它用的是最上面的那個(gè)x,打印出的就是77了。