声明和定义的时候,需要指明数据类型,此时需要写char。但"djsdhdf"这样的字面值,在语言内部已经被视为char数组(C的字符串其实就是char数组,没有内置的字符串数据类型),这样的常量字符串,是被编译在称为“静态只读存储区”中的,puts("abc")的编译结果,是puts(Char),Char就是指向这个存储空间的指针,与前面的定义一样,只不过你定义了一个叫Char的指针,它在栈上占用一个指针变量的空间,而后面的语句,是编译器直接把地址值送给puts()函数了,绕过了指针变量的消耗。