c - 关于C中char和int指针的几点疑惑

标签 c

我对 C 中的指针有疑问。

[1] char *somestring = "somestring"

[2] int *someint = 45

为什么 [1] 有效而 [2] 无效?

我们为什么要

printf("%s",str1);

不是

printf("%s",*str1);

?

最佳答案

在 C 语言中,文字字符串基本上是一个(只读)字符数组,所以 char*(是的,它应该是 const char*,但它已被历史遗忘)。文字 int 不是数组或指针,因此指向它的指针是荒谬的。类型不匹配。

关于c - 关于C中char和int指针的几点疑惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16315036/

相关文章:

c - M95128-W EEPROM。每页的第一个字节未正确写入或读取

c - 如何在 Win64 MATLAB 下编译随 Linux makefile 提供的基于 ANSI C99 的 MEX 代码?

c - 将用户输入存储到两个数组时中止陷阱

c - 为什么要使用 validating/invalidating 区域?

c - 在这种情况下要求 `malloc()`

c - win32 上的 "struct EVENT_LIST"是什么?

C 低级标准输入接受文件名,然后将文件内容打印到标准输出

c - 编译器忽略我的 else 语句

c - 为什么我不能在没有获取 int 地址的情况下将 int 存储到 char[]?

使用来自 C99 的库在 Windows 上使用 TCC 编译文件