在研究指標陣列與陣列指標的時候,遇到了這個困惑,後面解答。
指標陣列是陣列,即乙個陣列中,每個元素都是指標;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;
//陣列指標的用途,主要用於二維陣列一行的輸出,可以換行;
}
c++可以用三種方法訪問乙個字串,利用string時,記得加標頭檔案;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;
}
所以上面的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...