當前位置:才華齋>計算機>C語言>

C語言中判斷int、long型等變數是否賦值的方法

C語言 閱讀(1.99W)

如果不賦值給區域性變數,這樣會導致整個程式的崩潰,因為,它的內容被系統指向了垃圾記憶體。下面是小編為大家帶來的C語言中判斷int、long型等變數是否賦值的方法,歡迎閱讀。

C語言中判斷int、long型等變數是否賦值的方法
  C語言中判斷int、long型等變數是否賦值的方法

當然,如果你不賦值給區域性變數,這樣會導致整個程式的`崩潰,因為,它的內容被系統指向了垃圾記憶體。

下面我們看一段程式碼

複製程式碼 程式碼如下:

#include

#include

#include

int globle_value;

int my_sum(int value1, int value2);

long my_sub(long value1, long value2);

int main(void)

{

int auto_value_int;

long auto_value_long;

auto_value_int = my_sum(15, 9);

auto_value_long = my_sub(12587, 22587);

printf("globle_value : %dn", globle_value);

printf("auto_value_int : %dn", auto_value_int);

printf("auto_value_long : %ldn", auto_value_long);

system("PAUSE");

return 0;

}

int my_sum(int value1, int value2)

{

return value1 + value2;

}

long my_sub(long value1, long value2)

{

return value2 - value1;

}

說明:

我首先定義了一個全域性變數,當然,這會由系統自動初始化為0,但是兩個不同型別的區域性變數並沒有初始化,而是通過兩個函式呼叫賦的值。可是,現在,想一個問題,兩個函式呼叫是不是執行成功了呢?如果不成功,還是沒有達到我所想要的效果,這怎麼去判斷呢?

開始,博主也是沒想到好的解決辦法,也查閱別人怎麼去做,沒有太多的收穫,可是,博主想到了C 語言中的一個函式--sprintf ,它可以把不同型別變數存放到字元陣列中,我們之後可以判斷,字元陣列是否為空就可以了。

下面是經過修改了的程式碼:

複製程式碼 程式碼如下:

#include

#include

#include

int globle_value;

int my_sum(int value1, int value2);

long my_sub(long value1, long value2);

int main(void)

{

int auto_value_int;

long auto_value_long;

char temp[20] = {0};

auto_value_int = my_sum(15, 9);

auto_value_long = my_sub(12587, 22587);

printf("globle_value : %dn", globle_value);

sprintf(temp, "%d", auto_value_int);

if (strcmp(temp, "") != 0)

{

printf("auto_value_int : %dn", auto_value_int);

}

sprintf(temp, "%ld", auto_value_long);

if (strcmp(temp, "") != 0)

{

printf("auto_value_long : %ldn", auto_value_long);

}

system("PAUSE");

return 0;

}

int my_sum(int value1, int value2)

{

return value1 + value2;

}

long my_sub(long value1, long value2)

{

return value2 - value1;

}

執行截圖如下所示:

由此,解決了問題。