c语言指针 问题求解释!!

img


请问这里为啥可以这么定义指针? 不会变成野指针吗

*p1,*p2是指针
p1 = &a;  //把数组a的首地址赋值给指针变量p1
p2 =&b;  // 把数组b的首地址赋值给指针变量p2
循环语句赋值等价于b[0]=a[0],b[1]=a[1],以此类推
循环结束后赋值字符串结束符'\0'

不会野指针啊,你得看到下一行就给p和q赋值了啊,分别指向a和b数组的首地址啦

你需要正确理解指针。 指针有值但对应的空间不存在时,这个指针就是野指针。
char *p0, p1; 非全局下, 这个就是一个野指针,但只要你没有调用它的空间就没有问题。你给的例子就是,但只要不调用它的空间就没有问题。