当前位置: 首页 > wzjs >正文

个人网站建设的步骤网站建设与管理案例教程 柳

个人网站建设的步骤,网站建设与管理案例教程 柳,wordpress去掉工具栏,百度推广如何计费指针在数组遍历中的应用 在这一篇文章中&#xff0c;我们可以看到指针在数组遍历中的具体应用例子。 1. 赋值 我们要创建一个将数组的所有元素赋值为 1 的函数&#xff0c;并使用解引用运算符来访问数组元素. 代码为&#xff1a; #include <iostream> using namespac…

指针在数组遍历中的应用

在这一篇文章中,我们可以看到指针在数组遍历中的具体应用例子。

1. 赋值

我们要创建一个将数组的所有元素赋值为 1 的函数,并使用解引用运算符来访问数组元素.
代码为:

#include <iostream>
using namespace std;// 函数声明
void fill_zero(int* p, int n);  // 把 0 赋给数组 p 的前 n 个元素int main() {// 定义一个数组int x[5] = {1, 2, 3, 4, 5};int x_size = sizeof(x) / sizeof(x[0]);  // 计算数组的元素个数// 调用函数,将数组 x 的所有元素设置为 0fill_zero(x, x_size);// 输出结果cout << "把 1 赋给了所有元素。\n";for (int i = 0; i < x_size; i++) {cout << "x[" << i << "] = " << x[i] << '\n';}return 0;
}// 函数实现:把 0 赋给数组 p 的前 n 个元素
void fill_zero(int* p, int n) {while (n-- > 0) {  // 循环直到 n 为 0*p = 1;         // 将当前元素设置为 0p++;            // 指针移动到下一个元素}
}

重点我们看一下这个函数 fill_zero(int* p, int n) 是如何定义的:

void fill_zero(int* p, int n) {while (n-- > 0) {  // 循环直到 n 为 0*p = 1;         // 将当前元素设置为 0p++;            // 指针移动到下一个元素}

while (n-- > 0) 是一个常见的循环结构,用于遍历数组。
n-- 的作用:n-- 是后缀递减操作符,表示先使用 n 的当前值,然后再将 n 减 1。
例如,初始时 n = 5,n-- 的值为 5,然后 n 变为 4。
循环条件:n-- > 0 表示只要 n 大于 0,循环就继续执行。每次循环结束后,n 会自动减 1。
循环过程: 初始时,n 是数组的元素个数(这里是 5)。每次循环中,*p = 0 将当前指针指向的元素设置为 0。p++ 将指针移动到下一个元素。当 n 减到 0 时,循环结束。
指针的易懂过程

2. 线性查找

我们要写一个函数,这个函数能验证某个特定值的元素是否包含在数组中的程序。
代码1为:

#include <iostream>
using namespace std;// 函数声明
int seq_search(int* a, int n, int key);int main() {int key, idx;int x[7];int x_size = sizeof(x) / sizeof(x[0]);  // 计算数组的元素个数// 输入数组元素for (int i = 0; i < x_size; i++) {cout << "x[" << i << "] : ";cin >> x[i];}// 输入要查找的值cout << "查找值:";cin >> key;// 调用线性查找函数if ((idx = seq_search(x, x_size, key)) != -1) {//这里比较复杂,把函数seq_search的返回值赋值给idx,然后再判断是否不等于-1cout << "具有该值的元素为 x[" << idx << "]." << endl;} else {cout << "没有找到。" << endl;}return 0;
}// 函数实现:线性查找
int seq_search(int* a, int n, int key) {for (int i = 0; i < n; i++) {if (*a++ == key) {  // 检查当前元素是否等于目标值return i;       // 返回目标值的位置}}return -1;  // 如果未找到目标值,返回 -1
}

该函数的指针在内存中变化如下图所示:
线性查找时指针的变化
这里只运用了一个指针a,既是数组名,又是指针名,相当于隐式指针,如果我们运用显示指针p呢?

#include <iostream>
using namespace std;// 函数声明
int seq_search(int* a, int n, int key);int main() {int key, idx;int x[7];int x_size = sizeof(x) / sizeof(x[0]);for (int i = 0; i < x_size; i++) {cout << "x[" << i << "] : ";cin >> x[i];}cout << "查找值:";cin >> key;if ((idx = seq_search(x, x_size, key)) != -1)cout << "具有该值的元素为 x[" << idx << "]." << endl;elsecout << "没有找到。" << endl;return 0;
}// 函数实现:线性查找(第 2 版)
int seq_search(int* a, int n, int key) {int* p = a;while (n-- > 0) {if (*p == key)return p - a;elsep++;}return -1;
}

这两版代码的不同点如下

  1. 循环结构:
    第 1 版:使用 for 循环,索引变量 i 从 0 到 n-1。
    第 2 版:使用 while 循环,通过 n-- > 0 控制循环次数。
  2. 指针操作:
    第 1 版:在 if 条件中使用 *a++,同时检查值并移动指针。
    第 2 版:显式地定义指针 p,并在循环中手动移动指针 p++。
  3. 返回值计算:
    第 1 版:直接返回索引 i。
    第 2 版:返回指针差值 p - a,计算当前元素的索引。

第 2 版通过显式指针操作提供了更多的灵活性,特别是在处理复杂数据结构时。第 2 版在某些情况下可能更高效,因为它避免了隐式操作。

http://www.dtcms.com/wzjs/593889.html

相关文章:

  • 网站建设经验与教训淘宝网官网
  • 旅游网站建设的课题研究的主要内容上海外贸网站推广服务
  • mooc网站建设cms 网站
  • 做网站如何团队分工兰州网站建设q479185700強
  • 云服务器可以用来做网站么wordpress 分享本文
  • 网站制作公司哪家专业绥阳网站建设
  • 做羞羞的事的视频网站系统开发需要的技术
  • 做网站能改吗做健康类网站怎么备案
  • 网页设计制作网站大一素材中国建设报名系统官网
  • 人才网站建设加强志鉴网站建设
  • 重庆商会网站建设郑州做网站哪里好
  • 网站建设与制作段考试题wordpress 小程序 商城
  • 自由设计师网站如何做防水网站
  • 导航网站移动端流量占比网站建设客户
  • 域名及网站建设实验报告wordpress主板不显示内容
  • 网站怎么建设商城网页游戏魔域永恒
  • 白云网站建设学校网站建设的必要性
  • 上海杨浦网站建设wordpress 过时
  • 在哪些网站能接到活做archlinux wordpress
  • 胶州网站建设电话做试客需要去哪些网站
  • 网站开发区书籍做网站 属于电子商务
  • codeigniter 手机网站开发海口建站价格
  • 专做尼泊尔的旅行网站沧州网络
  • 防疫大数据平台网站seo优化技术入门
  • 山东跨境电商建站公司长沙ui设计公司
  • 网站模版购买wordpress后台登录慢
  • 数字校园建设专题网站旅游网页设计图
  • 服务器关闭 网站被k淘金网站建设
  • 实惠的网站建设公司做一份网站动态图多少钱
  • 河北省邢台市建设工程网站西宁设计网站建设