① C語言 point=(char*)i point為指針 i為長整形數據
(char*)i將i強制轉換為字元類型,將值賦給point,賦值後輸入指針的值為i的值(具體結果要看是以什麼格式輸入)
如果point為指針,這種賦值能通過編譯,但沒有實際意義。
② 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語言里,point有什麼作用
一個普通的變數名,字面意思是"點"
可能用來做表示點的結構名,譬如
typedef struct point
{
int x;
int y;
}point;
④ C語言 point(char*pt); main() {char b[4]={'a','c','s','f'},*pt=b; pt=point(pt); printf("%c
就算函數調用成功,輸出也為d,而不是a,數組下標是從0開始.
被調函數的計算結果在離開函數大括弧後就已經不在了,
回到主函數的變數p並不是調用函數後的計算結果,p仍然是
數組b的首地址,所以輸出是a.
char
*p;//定義全局變數
point(char
*c)
{
p=c+3;
}//全局變數返回計算結果
main()
{
char
b[4]={'a','b','c','d'};
p=b;//p為數組首地址
point(p
);//調用函數,地址加3
printf("%c\n
",
*p);//輸出為b[3]
}
⑤ C語言中point結構體
估計是一個坐標的結構體,
首先, 這個結構包括兩個部分, 分別為 x 坐標 和y 坐標.
接著, 有兩個構造函數, 第一個為默認的構造函數;
第二個為可初始xy坐標的函數.
一般用在需要標注位置的程序上.
⑥ 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地址以後的內存單元沒有用到,裡面是隨機數,所以以後顯示的數字將不確定