char指针数组赋值

标签 c arrays pointers

这是一个非常快速的问题。 为什么允许我这样做:

char* sentence[2] ={"blahblah","trololo"};
int main() {
  printf("%s",sentence[0]);
  printf("%s",sentence[1]);
  return 0;
}

但不是这个?

 char* sentence[2];
 sentence[0] = "blahblah";
 sentence[1] = "trololo";
 int main() {
  printf("%s",sentence[0]);
  printf("%s",sentence[1]);
  return 0;
}

最佳答案

你不能做第二部分,因为赋值在函数之外。当您将赋值移动到 main()(或其他函数)中时,它将有效

char* sentence[2];
int main() {
  sentence[0] = "blahblah";
  sentence[1] = "trololo";
  printf("%s",sentence[0]);
  printf("%s",sentence[1]);
  return 0;
}

关于char指针数组赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181526/

相关文章:

c - 用于获取 X 和 Y 位之间的值的位掩码

c - 如何按降序打印二叉树搜索?

c - C中单个文本字符串中的多个字符数组scanf

javascript - 如何使用angularjs在html中打印数组对象数组

c - C中包含复杂指针的代码输出

c - 具有连接文件描述符的 pthread 竞争条件

java - Java 中的 Array 和 Arrays 类有什么区别?

javascript - 第一次执行代码时将永久值存储在变量中,JavaScript

c - 修改 char *array[x][y]

c++ - 在函数中使用 vector 指针时出错