int main()
char str1 = "hello world";
char str2 = "hello world";
char* str3 = "hello world";
char* str4 = "hello world";
if(str1 == str2)
printf("str1and str2 are same\n");
else
printf("str1 and str2 not same\n");
if(str3==str4)
printf("str3 and str4 are same\n");
else
printf("str3 and str4 not same");
分析:程式最終輸出結果是str1 and str2 are same;str3 and str4 not same.
str1和str2是兩個字串陣列,程式會為它們分配兩個長度為12個位元組的空間,並把hello world的內容分別複製到陣列中去,這是兩個初始位址不同的陣列,因此str1 和str2的值也不相同。str3和str4是兩個指標,我們無須為它們分配記憶體以儲存字串的內容,而只需要把他們指向hello world在記憶體中的位址就可以了,由於hello world是常量字串,它在記憶體中只有乙個拷貝,因此str3和str4指向的是同乙個位址。
C 指標的應用
指標是c 的乙個非常強大的特性,它能使我們直接訪問計算機的記憶體,指標可以用來引用乙個陣列,乙個字串,乙個整數或者任何其他變數。這種強大的功能使得指標在c 程式設計中是非常普遍的,而同時,指標的知識又顯得有那麼些 繁雜 有必要清晰地做個總結。指標,就是記憶體位址。我們一般會宣告乙個變數是整數int,...
C 指標的應用
一 指標與陣列 首先看一段程式,來了解陣列名與指標之間的用法。include opencv.hpp using namespace std using namespace cv int main int aptr a for int i 0 i 3 i waitkey 0 return 0 輸出結果...
c語言,指標,及其應用
既然指標變數的值是乙個位址,那麼這個位址不僅可以是變數的位址,也可以是其它資料結構的位址。在乙個指標變數中存放乙個陣列或乙個函式的首位址有何意義呢?因為陣列或函式都是連續存放的。通過訪問指標變數取得了陣列或函式的首位址,也就找到了該陣列或函式。這樣一來,凡是出現陣列,函式的地方都可以用乙個指標變數來...