二维数组 和 指针
int a[2][3] = {{1,2,3},{4,5,6}};
int* p = a[0][0]; //如果int*p = a ;会报警告,因为p相当于是一个列指针a 相当于是一个行指针。
int* p = &a[0][0]; //&a[0][0]是列指针;
for(int i =0 ;i< n;i++)
{
printf("%d:\n",*(p+i)); // 1,2,3,4,5,6
}
int (*q)[3] = a; //a 是行指针 int (*q)[3] q指向int[3]类型的变量
//可以把a看成是拥有6个int的常量,而p ,q 是指向 列,行的变量
void func(int p[2][3],int m,int n)
{
printf("--%d",sizeof(p)); // 64位的系统: --8 不是 8*6
}
=============================================
char str[] = "helloworld";
printf("%d\n:%d\n",sizeof(str),strlen(str)); // 11:10
str = "welcome" //F 千万不能这样 应该用strcppy(str,"welcome") ,str数组 常量
char* str = "helloworld"
printf("%d\n:%d\n",sizeof(str),strlen(str)); // 64位 8:10,
strcpy(str,“welcome”) //不要这样,str 指向一个常量不能覆盖