c - C 中的指针和数组 - 极其困惑

标签 c arrays pointers memory

我了解到声明字符数组的传统方式如下:

char c[] = "John";

但是,我也注意到您可以将其声明为:

char *c = "John";

这到底是如何工作的?我知道这与指针有关,但有人可以详细说明吗?任何帮助将不胜感激。

最佳答案

在第一个示例中,c 是一个char 数组。但在:

 char *c = "John";
这里的

c 不是一个数组,而是一个指向字符串文字的指针(类型为 char *)。指针和数组在 C 中是不同的类型。

如果您想了解指针和数组,下面是一个很好的链接:

http://www.torek.net/torek/c/pa.html

关于c - C 中的指针和数组 - 极其困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18323967/

相关文章:

C:如何用指针数组生成固定数量的对象

c - 管道化读取指令

java - 当传递的参数是不同对象的数组时,如何在方法中声明参数类型?

c++ - 如何在 C++ 中动态声明一个指向整数的指针数组?

c++ - 如何正确删除 std::stack 中的指针?

c - 生成正弦波超过 1 秒时出现问题

c - 设置线程的堆栈大小

javascript - 将用户输入(问答)存储在数组中并检索答案

c - C 中的 2 元素数组列表

c - 我是否在 c 中的堆实现的 add 函数中正确实例化了指针