今天幫別人把一個C++的程序轉成C程序,中間出了幾個問題
1 首先是字符串的問題
char *str = ""; char *s = str;
注意這裡用的char*只是定義了一個字符型的指針,其相互復制的時候,只是指針值的傳遞,如果指針值是函數中開辟的臨時變量,那麼就會出現問題。所以不能這麼做。正確的做法是用字符數組
char strs[100];
數組要保證足夠的空間,以免在復制的時候發生溢出現象。復制的時候也要使用strcpy函數。
2 發生錯誤 C2065
printf("what a bad error it is\n"); int a = 10;
但是如果調換順序就會正確,這點正是C和C++的重要區別,在C中變量定義必須在作用域的最開頭,C++就比較隨心所欲,可以在使用的時候定義就行。
int a = 10; printf("what a bad error it is\n");