一級指標真真的用法

2022-09-23 14:54:07 字數 2041 閱讀 5841

#include

#include

總結:不管他前面有幾個心

void getdata01(char *p1)

//char *p 形參 行參 元素被呼叫該函式的引數,只不過具有對外屬性而已

printf(「getdata01() begin\n」);

return;

void getdata02(char **p2)//char **p2 行參 p2是變數

printf(「getdata01() begin\n」);

return;

void getdata03(char *******p7)*******p7 行參 p2是變數

printf(「getdata01() begin\n」);

return ;

void main()

int *p1=null;

int **p2=null;

int a=10;

int *p3=null;

int c=0;

a=20;//直接通過變數修改a的值

p3=&a;//將a的位址賦值給p3

p3=30;//間接的修改p3的值

c=*p3;

//將p3的裡面的值,賦值給c;注意不是位址,解釋*p3裡面放著的a的位址,a=20,在將

20賦值給c;

總結:*p的意義,*就像一把鑰匙,根據乙個指標的值,去修改後面的記憶體空間

如while(*p!=』\0』)

*p++ = *p2++;

解釋 p2++是取值,取出來的值賦值給*p++

//練習

void main()

char *p1=null;

//定義乙個char型別的指標變數p1,將p1的值賦值為null;

char *p2=null;

//定義乙個char型別的指標變數p2,將p2的值賦值為null;

char buf1[100]=;

//定義乙個char型別的陣列為buff1,其中的buf1的元素個數是100個

char buf2[100]=;

//定義乙個char型別的陣列為buff2,其中的buf2的元素個數是100個

strcpy(buf,」abcdefg」)

p1=buf1;

//將buf1的首位址賦值給p1

p2=buf2;

//將buf2的首位址賦值給p2

while(*p1 !=』\0』)

*p2=*p1;

//*放在左邊是賦值

//*放在右邊是取裡面的值

p2++;//向後移動乙個位元組,如果是int型別的話就移動4個位元組

p1++;

重點問一下你是怎麼理解下面的指標的

1、對引數的指標型別應該怎麼理解

a) 理解角度需要從兩個角度出發

i. 佔在c/c++編譯器的角度對型參,如果是指標型別,c編譯器只會分配4個位元組

ii. char *p形參 p是變數

2、指標的資料型別到底是什麼

a) 指標的資料型別是值它所指的記憶體空間的資料型別

i. 指標的資料型別具有依附特性

結論:指標的補長,根據所指記憶體空間型別來定

void senddata01(char *p1); void senddata01(char* p1);

void senddata02(char ** p1); void senddata02(char * *p1); void senddata02(char **p1);

void senddata03(char ***p1);

void senddata04(char *p); void senddata04(char * p); void senddata04(char *p );

void senddata05(char (*p)[10]); void senddata05(char (*p) [10]);

void senddata05(char *****p4);

一級指標二級指標

例如 int p null int代表指標p指向的資料型別是int型,代表這是乙個指標變數,1 指標變數儲存的內容是指向的變數的位址 2 在使用sizeof判斷指標的位元組數時,在32位機器上為4個位元組,在64位機器上為了相容,仍然是四個位元組大小 3 小知識點,不同型別的指標除了指向的變數資料型...

一級指標陣列

示例1 include intmain void 定義了乙個長度為5的物理空間陣列 每個長度為1的空間都有自己獨有的實體地址十六進製制 a 3 3 a printf p n a 1 此時輸出的為 實體地址 即a 2 printf p n a 2 printf d n a 3 a 3等價於 a 0 3...

一級指標與二級指標

如下圖所示,整型指標xptr指向變數x的位址。原始碼 include int main 實現方法一如下圖所示,先為二級整型指標ptr分配空間,然後賦值。原始碼 include include int main printf n return 0 執行結果 實現方法二 如下圖所示,先為二級整型指標pt...