<pre name="code" class="cpp"># include <cstdio>
# include <cstdlib>
# include <ctime>
# include <cmath>
# include <iostream>
# include <fstream>
# include <cstring>
# include <string>
//*
#define local
//*/
# define maxn 10000
# define maxint 2147483647
using namespace std;
/*
ifstream fin("in.txt");
ofstream fout("out.txt");
//*/
int main()
{
# ifdef local
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif
char s[2][10]={"aaa","bbb"};
char* s1[2];
char* s2;
char** s3;
// s3=&s[0];[Error] cannot convert 'char (*)[10]' to 'char**' in assignment
// s3=s;[Error] cannot convert 'char [2][10]' to 'char**' in assignment
//s3[0]=s;[Error] cannot convert 'char [2][10]' to 'char*' in assignment
// s1=s;[Error] incompatible types in assignment of 'char [2][10]' to 'char* [2]'
//s1=s[0];[Error] incompatible types in assignment of 'char [10]' to 'char* [2]'
//s1=&s;[Error] incompatible types in assignment of 'char (*)[2][10]' to 'char* [2]'
//s1=&s[0];[Error] incompatible types in assignment of 'char (*)[10]' to 'char* [2]'
printf("%s\n",s);//aaa
printf("%s\n",s[0]);//aaa
printf("%s\n",s1);//乱码,可能是s1原本存储的数据
//printf("%s\n",s3);编译通过,运行出错,可能是非法访问了,见下面代码
//printf("%s\n",s1[0]);编译通过,运行出错,可能是非法访问了,见下面代码
//printf("%s\n",s2);编译通过,运行出错,可能是非法访问了,见下面代码
printf("\n");
printf("%c\n",s);//0
printf("%c\n",*s);//0
printf("%c\n",**s);//a
printf("%c\n",s[0]);//0
printf("%c\n",s[0][0]);//a
printf("%c\n",s1);//是空的
printf("%c\n",s1[0]);//与 printf("%s\n",s1);结果相同
printf("%c\n",s2);//u
//printf("%c\n",s2[0]);编译通过,运行出错,可能是非法访问了,见下面代码
printf("%c\n",s3);//乱码同上
//printf("%c\n",s3[0]);编译通过,运行出错,可能是非法访问了,见下面代码
printf("\n");
printf("%d\n",sizeof(s));//20
printf("%d\n",sizeof(s[0]));//10
printf("%d\n",sizeof(s[0][0]));//1
printf("%d\n",sizeof(s1));//16
printf("%d\n",sizeof(s1[0]));//8
printf("%d\n",sizeof(s2));// 8
printf("%d\n",sizeof(s2[0]));//1
printf("%d\n",sizeof(s3));//8
printf("%d\n",sizeof(s3[0]));//8
printf("%d\n",sizeof(s3[0][0]));//1
printf("\n");
printf("%p\n",&s); //00000000009ffe30
printf("%p\n",s); //00000000009ffe30
printf("%p\n",s[0]); //00000000009ffe30
printf("%p\n",&s[0]);//00000000009ffe30
printf("%p\n",&s1);//00000000009ffe20
printf("%p\n",s1);//00000000009ffe20
printf("%p\n",&s1[0]);//00000000009ffe20
printf("%p\n",s1[0]);//0000000000000001
printf("%p\n",&s2);//00000000009ffe18
printf("%p\n",s2);//000000000040ea05
printf("%p\n",&s2[0]);//000000000040ea05
printf("%p\n",s2[0]);//00000000ffffff83
printf("%p\n",&s3);//00000000009ffe10
printf("%p\n",s3);//ffffffffffffffff
printf("%p\n",&s3[0]);//ffffffffffffffff
//printf("%p\n",s3[0]);//0
//printf("%p\n",&s3[0][0]);//000000000040ea05
//printf("%p\n",s3[0][0]);//0
s1[0]=s[0];
s2=s[0];
//s3[0]=s[0];//程序崩溃
//s3[0]=s1[0];//程序崩溃
s3=s1;
printf("after s1[0]=s[0];\n");
printf("%p\n",&s1);//00000000009ffe20
printf("%p\n",s1);//00000000009ffe20
printf("%p\n",&s1[0]);//00000000009ffe20
printf("%p\n",s1[0]);//00000000009ffe30
printf("%p\n",&s2);//00000000009ffe18
printf("%p\n",s2);//00000000009ffe30
printf("%p\n",&s2[0]);//00000000009ffe30
printf("%p\n",s2[0]);//0000000000000061
printf("%p\n",&s3);//00000000009ffe10
printf("%p\n",s3);//00000000009ffe20
printf("%p\n",&s3[0]);//00000000009ffe20
printf("%p\n",s3[0]);//00000000009ffe30
printf("%p\n",&s3[0][0]);//00000000009ffe30
printf("%p\n",s3[0][0]);//0000000000000061
return 0;
}
总结明天写吧。。。