C說話中斷定int,long型等變量能否賦值的辦法詳解。本站提示廣大學習愛好者:(C說話中斷定int,long型等變量能否賦值的辦法詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C說話中斷定int,long型等變量能否賦值的辦法詳解正文
固然,假如你不賦值給部分變量,如許會招致全部法式的瓦解,由於,它的內容被體系指向了渣滓內存。
上面我們看一段代碼:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
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 : %d\n", globle_value);
printf("auto_value_int : %d\n", auto_value_int);
printf("auto_value_long : %ld\n", 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 <stdio.h>
#include <string.h>
#include <stdlib.h>
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 : %d\n", globle_value);
sprintf(temp, "%d", auto_value_int);
if (strcmp(temp, "") != 0)
{
printf("auto_value_int : %d\n", auto_value_int);
}
sprintf(temp, "%ld", auto_value_long);
if (strcmp(temp, "") != 0)
{
printf("auto_value_long : %ld\n", 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;
}
運轉截圖以下所示:
由此,處理了成績。