char *p是一维的, str是2维的,p=str,二者不匹配。str[0]是一维的,与p同类型。a与a[0]只是在使用a的首地址这个值时意义才一样。a是地址,*a是取a这个地址中存储的一个byte.[看数值类型,如果是整数,则是取整数]