网站只有一个首页单页面怎么做排名,绩效管理网站开发,天津网站建设网页设计公司,界面设计效果图排版C中修改存储在数组中的数据
在前一个程序清单中#xff0c;并未将用户定义的数据输入到数组中。给数组元素赋值的语法与给 int 变量赋值的语法很像。 例如#xff0c;将 2016 赋给 int 变量的代码类似于下面这样#xff1a;
int thisYear;
thisYear 2016;而将 2016 赋给第…C中修改存储在数组中的数据
在前一个程序清单中并未将用户定义的数据输入到数组中。给数组元素赋值的语法与给 int 变量赋值的语法很像。 例如将 2016 赋给 int 变量的代码类似于下面这样
int thisYear;
thisYear 2016;而将 2016 赋给第 4 个数组元素的代码类似于下面这样
myNumbers [3] 2016; // Assign 2016 to the fourth element以下程序演示了如何使用常量指定数组的长度 还演示了如何在程序执行期间给数组元素赋值
#include iostream
using namespace std;
constexpr int Square(int number) { return number*number; }int main()
{const int ARRAY_LENGTH 5;// Array of 5 integers, initialized to fiveint myNumbers [ARRAY_LENGTH] {5, 10, 0, -101, 20};// Note - using a constexprint moreNumbers[Square(ARRAY_LENGTH)] {25};cout Enter index of the element to be changed: ;int elementIndex 0;cin elementIndex;cout Enter new value: ;int newValue 0;cin newValue;myNumbers[elementIndex] newValue;moreNumbers[elementIndex] newValue;cout Element elementIndex in array myNumbers is: ;cout myNumbers[elementIndex] endl;cout Element elementIndex in array moreNumbers is: ;cout moreNumbers[elementIndex] endl;return 0;
}输出
Enter index of the element to be changed: 3
Enter new value: 101
Element 3 in array myNumbers is: 101
Element 3 in array moreNumbers is: 101分析
数组的长度必须是整数为此可使用常量来指定如第 8 行的 ARRAY_LENGTH也可使用常量表达式来指定如第 12 行的 Square()。因此数组 myNumbers 被声明为包含 5 个元素而数组 moreNumbers 包含 25 个元素。第 1420 行询问用户要修改哪个数组元素以及要在这个元素中存储什么样的新值。第 22 和 23 行演示了如何修改数组的特定元素而第 2629 行演示了如何访问数组的特定元素。请注意修改改索引为 3 的元素时实际修改的是第 4 个元素因为索引从零开始您必须习惯这一点。
注意
数组包含 5 个 int 元素时很多 C新手将第 5 个值赋给索引为 5 的元素。这超出了数组的边界因为编译后的代码将试图访问数组的第 6 个元素这不在定义的范围内。这种错误被称为篱笆柱 fence-post错误。之所以叫这个名字是因为建造篱笆时需要的篱笆柱数总是比区段section数多 1。警告
上面的程序遗漏了一些必不可少的代码没有检查用户输入的索引是否在数组的边界内。实际上该程序应检查 elementIndex 是否为 04对于数组 myNumbers或 024对于数组 moreNumbers如果不是则拒绝修改数组。由于缺少这种检查用户将被允许输入超越数组边界的值。在最糟糕的情况下这将导致应用程序崩溃。使用循环遍历数组元素
按顺序处理数组及其元素时应使用循环进行遍历。应该
务必初始化数组否则其元素将包含未知值。
使用数组时务必确保在其边界内。不应该
在包含 N 个元素的数组中 不要使用索引 N 来访问第 N 个元素。
别忘了使用索引 0 来访问第一个数组元素。该文章会更新欢迎大家批评指正。
推荐一个零声学院免费公开课程个人觉得老师讲得不错 分享给大家LinuxNginxZeroMQMySQLRedis fastdfsMongoDBZK流媒体CDNP2PK8SDocker TCP/IP协程DPDK等技术内容点击立即学习: 服务器课程C服务器