程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中如何判斷int和long型等變量是否賦值

C語言中如何判斷int和long型等變量是否賦值

編輯:關於C語言

博主這段時間在寫一些C程序的代碼,由於以前對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;  
}

運行截圖如下所示:

由此,解決了問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved