#include <iostream>
#include <stdlib.h>
![](/Images/OutliningIndicators/None.gif)
using namespace std;
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**////////////////////////////////////////////////////////////
void TestPointArray();
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**///////////////////////////////////////////////////////////
![](/Images/OutliningIndicators/None.gif)
void TestConstRef()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
int a = 100;
const int &b = a;
cout<<b<<endl; // 100
a = 2;
cout<<b<<endl; // 2
// b = 1; // error
const int &c = 300;
cout<<c<<endl;
}
![](/Images/OutliningIndicators/None.gif)
void TestSizeof()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
char s1[6] = "ABCDE";
char *s2 = "abcde";
char s3[] = "abcde";
cout<<sizeof(s1)<<endl; // 6
cout<<sizeof(s2)<<endl; // 4
cout<<sizeof(s3)<<endl; // 6
}
![](/Images/OutliningIndicators/None.gif)
void TestArray()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int a[] =
{1, 2, 3, 4, 5};
int *p = a;
cout<<p<<endl; // 0x22ff50
cout<<*p++<<endl;
cout<<p<<endl; // ?
cout<<p - a<<endl; // ?
cout<<*++p<<endl; // 3
cout<<*(p + 1)<<endl;
cout<<*((int*)((char *)p + 1))<<endl; // 哈哈, 是 0x4000
}
![](/Images/OutliningIndicators/None.gif)
void TestArrPara(int a[5])
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
cout<< *(a++)<<endl; // OK
}
![](/Images/OutliningIndicators/None.gif)
int main(int argc, char *argv[])
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
// TestConstRef();
// TestSizeof();
// TestArray();
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int a[] =
{1, 2, 3, 4, 5};
// TestArrPara(a);
TestPointArray();
system("PAUSE");
return 0;
}
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
void TestPointArray()
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
int a[] =
{1, 2, 3, 4, 5};
int (*p)[5];
p = &a;
cout<<*p[0]<<endl;
cout<<*p[1]<<endl;
cout<<*p[2]<<endl;
cout<<*p[3]<<endl;
cout<<*p[4]<<endl;
![](/Images/OutliningIndicators/InBlock.gif)
cout<<endl;
cout<<(*p)[0]<<endl;
cout<<(*p)[1]<<endl;
cout<<(*p)[2]<<endl;
cout<<(*p)[3]<<endl;
cout<<(*p)[4]<<endl;
![](/Images/OutliningIndicators/InBlock.gif)
cout<<endl;
cout<<p[0]<<endl;
cout<<p[1]<<endl;
cout<<p[2]<<endl;
cout<<p[3]<<endl;
cout<<p[4]<<endl;
cout<<endl;
cout<<a + 0<<endl;
cout<<a + 1<<endl;
cout<<a + 2<<endl;
cout<<a + 3<<endl;
cout<<a + 4<<endl;
cout<<endl;
int *q = *p;
cout<< *++q<<endl;
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/None.gif)