char* 赋值有什么作用?

Don*_*aka 0 c char

我有一个 char* 并且我正在为其分配另一个 char* 。我想知道通过该指令会发生什么?

例如:

char* foo; // suppose it is initialized and defined

char* bar = foo // I am defining bar
Run Code Online (Sandbox Code Playgroud)

在调用值、内存等的赋值操作后,会发生什么(对 foo 和 bar)?

我是 C 语言的新手,对于你们中的一些人来说可能是一个非常微不足道的问题。

Som*_*ude 5

假设我们有两个初始化为指向不同字符串的指针:

const char *foo = "abcd";
const char *bar = "efgh";
Run Code Online (Sandbox Code Playgroud)

如果我们“画”出它们在记忆中的样子,就会是这样的:

+-----+ +--------+
| 富 | ---> | “abcd”|
+-----+ +--------+

+-----+ +--------+
| 酒吧| ---> | “efgh”|
+-----+ +--------+

然后我们分配给bar:

bar = foo;
Run Code Online (Sandbox Code Playgroud)

然后它会看起来像这样:

+-----+ +--------+
| 富 | -+-> | “abcd”|
+-----+ | +--------+
         |
+-----+ | +--------+
| 酒吧| -/| “efgh”|
+-----+ +--------+

现在foo和 都bar指向同一个位置。

简而言之,这就是带有初始化的定义:

const char *bar = foo;
Run Code Online (Sandbox Code Playgroud)

会做。