指標陣列,陣列指標,字串與指標

2021-10-07 11:24:57 字數 1548 閱讀 7386

在研究指標陣列與陣列指標的時候,遇到了這個困惑,後面解答。

void

test02()

;char c[4]

=;char

*p2[4]

;//指標陣列

for(

int j =

0; j <

4; j++

)for

(int i =

0; i <

4; i++

)}

指標陣列是陣列,即乙個陣列中,每個元素都是指標;

void

test05()

;//注意這一行和最後一行的區別;

cout <<

*ary[0]

<< endl;

char

* s1 =

"hello"

;char

* s2 =

"world"

;char

* s3 =

"haha"

;char

* ary2[3]

=;//直接輸出位址,但是出來的卻是內容。

//char*指標可以當字串使用

cout << ary2[0]

<< endl;

}

#陣列指標

本質上應該是乙個指標,指向陣列的指標。

void

test06()

char s[4]

=;//乙個指標指向4個位元組的陣列

char

(*p)[4

]=&s;//cout << (*p)[0] << endl;相當於s[0]

cout << p << endl;

cout <<

&s << endl;

//指標+1,相當於原位址+sizeof(型別)*1;

cout << p +

1<< endl;

//陣列指標的用途,主要用於二維陣列一行的輸出,可以換行;

}

void

test07()

;char

(*p)[4

]=&s[0];

cout << p << endl;

printf

("%p\r\n"

,&s[0]

[0])

;//cout <<&s[0][0] << endl;

cout << p +

1<< endl;

//%p輸出位址的,%p一般以十六進製制整數方式輸出指標的值

printf

("%p\r\n"

,&s[1]

[0])

;//cout << &s[1][0] << endl;

}

c++可以用三種方法訪問乙個字串,利用string時,記得加標頭檔案;

所以上面的char*可以看成字串

void

test08()

指標與陣列,指標與函式,指標與字串

首先我想解釋清楚指標與陣列名的關係,由下面的 引入問題,不知道大家有沒有好奇過為什麼它們三個是一樣的?include int main int argc,char argv printf p p p n a,a,a 0 return 0 那我們在看下面 答案顯而易見,就是a和 a 0 是一樣的,但是...

指標與陣列,指標與函式,指標與字串

指標與陣列,指標與函式,指標與字串 一 指標與陣列 首先我想解釋清楚指標與陣列名的關係,由下面的 引入問題,不知道大家有沒有好奇過為什麼它們三個是一樣的?include int main int argc,char argv printf p p p n a,a,a 0 return 0 1 234...

指標字串和陣列指標

指標是c語言的精髓,只有掌握好指標才算是真正學會了c語言,以下就是學習指標的例子 include main int n 5 sort name,n print name,n if strcmp1 name 0 name 1 0 printf s,s n name 0 name 1 if strcmp...