A. C語言 point=(char*)i point為指針 i為長整形數據
(char*)i將i強制轉換為字元類型,將值賦給point,賦值後輸入指針的值為i的值(具體結果要看是以什麼格式輸入)
如果point為指針,這種賦值能通過編譯,但沒有實際意義。
B. C語言指針定義
(1)指針變數定義的格式:
類型標識符 *變數名; 如:int *point;
注意:在定義int point;的時候 ,加粗部分的 不是取值符,而是修飾point是一個指針變數,如何確定point指向什麼類型的變數呢,需要進行下一步:看非加粗部分,int則表示point指向int類型變數或保存int類型飢基變數的地址。
(2)指針變數的初始化,先來看個實例:
說明:
表示該變數的類型是一個指針變數,指針變數名是p1而不是 p1;
如果在同一洞宴行定義多個指針變數應該是:int *p1, *p2;而不是int p1, p2或者 int p1, p2;
給指針變數初始化有兩種方式:
在定義時初始化,如int *p_2 = &b;
先定義再初始化,如int *p1; p1 = &a;
*p1是p1所指向的變數的值;
一個指針變數只能指向同一個類型的變數。
(3)對於指針變數的兩個運算符爛顫謹「*」與「&」:
& 取地址運算符 //&a就代表a的地址(指的是a所在內存空間的起始地址)
C. C語言,關於指針 (point) 的程序。拜託了。謝謝。
#include <stdio.h>
main( )
{
int a=10,b=100,c=1000; //調試:a(0x0012ff7c) b(0x0012ff78)
c(0x0012ff74) 整型在C++中佔4位
可以看出a,b,c內存單元是連續的
int *p=&c; //這里p指向c的內存單元
for(int i=0;i<10;i++)
printf("%d,",*p++);//內存當中abc的存儲順序為c,b,c,..
printf("\n");
}
由於你將p指向了c,所以顯示時將從c內存單元里的內容開始,依次向後移動4位,而a,b,c在內存中是相鄰的,所以顯示結果為c,b,a,......由於0x0012ff80地址以後的內存單元沒有用到,裡面是隨機數,所以以後顯示的數字將不確定