[问题] pointer to char位址的问题

楼主: kdok123 (小天)   2014-08-31 12:00:20
首先例一:
int a[] = {1,2,3,4,5};
cout << a << endl; //array a 的初始位址
cout << *a << endl; // 1
cout << *(a+1) << endl; // 2
cout << *(*(&a+1)-1) << endl; // 5
////////////////以同样的观念来看char//////////////
char a[] = "123";
cout << a << endl; // 123 ...式一
cout << *a << endl; // 1 ...式2
cout << *(a+1) << endl; // 2 ...式3
cout << *(*(&a+1)-1) << endl; // 怪怪的值 .. 式4
///////////////以下为问题/////////////////////////
从式2和式3可以知道a是一个pointer,但从式一和式四却不能出现如同例一的效果
问题一:我要如何找到a[]的初始位址?(希望可以印出初始位置)
问题二:如何实现我要的式4 (希望可以印出3)
如果有任何观念错误烦请不吝纠正
谢谢
作者: StarRoad (知道越多了解越少)   2014-08-31 12:33:00
&a[0], strlen取字串长度,再用a[length-1]?另外式四的&a应该是取址,这边+1感觉很不对劲...
作者: sos0214 (kaleidoscope)   2014-08-31 12:36:00
1. &a 2. *((&a+1)-1)+2
作者: kerwinhui (kezza)   2014-08-31 13:15:00
char[]字串是有一个\0在最后的,代表这个字串的终结所以位置要再减1…才行只有char是这样,是底层如何代表字串的问题…

Links booklink

Contact Us: admin [ a t ] ucptt.com