关于C中char和int指针的一些疑问

tom*_*ies 2 c

我对C中的指针有疑问.

[1] char *somestring = "somestring"
Run Code Online (Sandbox Code Playgroud)

[2] int *someint = 45
Run Code Online (Sandbox Code Playgroud)

为什么[1]有效,[2]没有?

为什么我们

printf("%s",str1);
Run Code Online (Sandbox Code Playgroud)

并不是

printf("%s",*str1);
Run Code Online (Sandbox Code Playgroud)

Joh*_*nck 5

在C中,一个文字字符串基本上是一个(只读)字符数组,所以char*(是的,它应该是const char*,但是它会丢失到历史记录中).文字int不是数组或指针,因此制作指向它的指针是没有意义的.类型不匹配.