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

來源:互聯網
上載者:User

當然,如果你不賦值給局部變數,這樣會導致整個程式的崩潰,因為,它的內容被系統指向了垃圾記憶體。
下面我們看一段代碼:

複製代碼 代碼如下:
#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 : %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 <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 : %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;
}


運行如下所示:



由此,解決了問題。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.