【问题标题】:Difference between pointer and array [duplicate]指针和数组之间的区别[重复]
【发布时间】:2011-07-01 23:54:58
【问题描述】:

可能的重复:
Difference between char *str=“STRING” and char str[] = “STRING” ?
C: differences between pointer and array

嗨,

谁能告诉我以下陈述之间的区别?

char *p = "This is a test";

char a[] = "This is a test";

【问题讨论】:

标签: c++ c


【解决方案1】:

当您声明 char p[] 时,您正在声明一个字符数组(可以读取和写入),并且该数组被初始化为一些字符序列,即“这是测试”被复制到元素在这个数组中。

当你声明 char* p 时,你声明的是一个直接指向某个常量字面量的指针——而不是一个副本。这些只能读取。

【讨论】:

  • char *p = "literal" 格式不正确。
  • @SimonRichter 不在 C89 中
【解决方案2】:

a 是一个数组,这意味着您可以在a 上使用sizeof() 运算符,并且sizeof(a)/sizeof(a[0]) 等于数组长度。

p 是一个指向常量内存区域的指针。

【讨论】:

    【解决方案3】:

    1 - 指向包含“This is test\0”字符串的程序只读部分的指针。

    2 - 使用上述内容初始化的内存(13 字节)。

    【讨论】:

      猜你喜欢
      • 2013-05-17
      • 1970-01-01
      • 2010-11-23
      • 2011-12-02
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      相关资源
      最近更新 更多