C语言指针和数组的问题

为什么把数组名赋值给指针,然后输出指针得到的不是数组首元素的值。而是整个数组的值呢。

你说的是char数组吧,char数组才这样。
因为打印字符串的时候,到\0才会结束,所以输出指针得到就是整个数组(也就是整个字符串)。

因为c语言中数组名是特殊的指针,它指向的是整个数组的地址

指针指的就是地址,要是想输出数组首元素的值,在指针前加个*,比如
*p