我有一个 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 语言的新手,对于你们中的一些人来说可能是一个非常微不足道的问题。
假设我们有两个初始化为指向不同字符串的指针:
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)
会做。
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |