【发布时间】:2022-01-17 20:08:21
【问题描述】:
使用您的 ID(5 位数字)初始化一个 char 类型的全局一维数组“StudentData”。 在本部分中必须使用指针语法。 你能给我一些关于这样做的提示吗?
我试过这样做,
char *StudentData;
void loadData(){
StudentData=(char*)"60897";
}
是正确的还是我应该尝试做其他事情?
【问题讨论】:
-
char *StudentData是一个指针,而不是一个数组。 “这部分必须使用指针语法。”那么你想要一个数组还是一个指针?你需要选择一个。数据应该是读/写还是只读? -
不需要演员表。除此之外,请记住,C 中的所有文字字符串实际上都是字符数组(包括空终止符),并且虽然这些数组不是常量,但您不能修改它们的内容。这就是为什么建议使用
const char *来指向文字字符串的原因。 -
至于数组与指针的关系,您还必须记住(或了解)所有数组都可以衰减到指向其第一个元素的指针。并且对于所有数组和指针,数组索引将使用指针算法完成(对于任何数组或指针
p和索引i,表达式p[i]完全等于*(p + i))。 -
@Someprogrammerdude 在所有 C 语言中,隐式指针衰减是我认为的一个设计缺陷。它不会使开发变得更糟,实际上稍微容易一些,但它使学习语言变得更加困难。这不值得。