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

查询网站whois我想创建一个网站自己玩玩

查询网站whois,我想创建一个网站自己玩玩,网页设计实训报告2022,男女做那个暖暖网站C中数组和指针的关系#xff08;区别#xff09;详解 本文转自#xff1a;http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面#xff1a; 没有方括号和下标的数组名称实际上代表数组的起始地址#xff0c;这意味着数组名称实际上就是…C中数组和指针的关系区别详解 本文转自http://c.biancheng.net/view/1472.html 博主在阅读后将文中几个知识点提出来放在前面 没有方括号和下标的数组名称实际上代表数组的起始地址这意味着数组名称实际上就是一个指针。在数学语句中使用指针时它不像常规变量那样工作。向指针添加值时并要解引用时括号非常重要。array[index] 相当于 *(array index)。C 不会对数组执行边界检查。不仅指针符号可以与数组名称一起使用而且下标符号也可以与指针一起使用。可以使用地址运算符来获取数组中单个元素的地址。数组名称和指针变量的唯一区别是不能改变数组名称指向的地址即数组名称可视为一个指针常量。 我们知道没有方括号和下标的数组名称实际上代表数组的起始地址这意味着数组名称实际上就是一个指针。下面程序通过显示与间接运算符一起使用的数组名称来说明这一点。 // This program shows an array name being dereferenced with the * operator. #include iostream using namespace std; int main() {short numbers[] {10, 20, 30, 40, 50};cout The first element of the array is ;cout *numbers endl;return 0; }程序输出结果 The first element of the array is 10numbers 在上面程序中的作用类似于指向数组起始地址的指针所以当 numbers 被解引用时第一个元素被检索出来。那么如何使用间接运算符来检索数组的全部内容呢请记住数组元素是一起存储在内存中的如图 1 所示。 既然 numbers 是 numbers[0] 的地址那么给 numbers 添加值岂不是就可以获得数组中其他元素的地址了这样想当然很有道理但是这里有一个知识点非常重要即在数学语句中使用指针时它不像常规变量那样工作。 在 C 中当给一个指针添加一个值的时候实际上添加的值是把这个值乘以指针引用的数据类型的大小。换句话说如果给 numbers 加 1实际上就是给 numbers 加上 1 X sizeof(short)如果给 numbers 加 2实际上就是给 numbers 2 X sizeof(short)以此类推。在 PC 上这意味着以下说法是真实的因为 short短整数通常使用 2 个字节 *(numbers 1)是指地址 numbers 1X2 处的值。*(numbers 2)是指地址 numbers 2X2 处的值。*(numbers 3)是指地址numbers 3X2 处的值。 以此类推。 这种自动转换意味着数组中的元素可以通过使用其下标或通过将下标添加到指向数组的指针来检索。既然表达式 *numbers 与 *(numbers 0) 相同它可以检索数组中的第一个元素那么*(numbers 1) 就可以检索第二个元素。同样*(numbers2) 即可检索第三个元素以此类推。图 2 显示了下标表示法和指针表示法的等价性。 注意向指针添加值时括号非常重要。* 运算符优先于 运算符所以表达式 *numbers 1 不等于 *(numbers 1)。表达式 *numbers 1 的意思是将数组的第一个元素的内容加 1 而 *(numbers 1) 则是先给 numbers 加 1然后对其进行解引用。 下面的程序使用指针符号显示了被访问数组的整个内容 //This program processes an array using pointer notation. #include iostream using namespace std; int main() {const int SIZE 5; // Size of the arrayint numbers[SIZE]; // Array of integers// Get values to store in the array// Use pointer notation instead of subscriptscout Enter SIZE numbers: ;for (int count 0; count SIZE; count)cin *(numbers count);// Display the values in the array// Use pointer notation instead of subscriptscout Here are the numbers you entered:\n;for (int count 0; count SIZE; count)cout * (numbers count) ;cout endl;return 0; }程序输出结果 Enter 5 numbers: 5 10 15 20 25 Here are the numbers you entered: 5 10 15 20 25在使用数组时请记住一个规则即**array[index] 相当于 *(array index) **。 另外请注意C 不会对数组执行边界检查。当使用指针遍历一个数组时有可能会给指针一个越出数组边界的地址。 要理解数组名称和指针之间的密切关系请看下面的程序。它定义了一个 double 数组和一个 double 指针该指针分配了数组的起始地址。随后不仅指针符号可以与数组名称一起使用而且下标符号也可以与指针一起使用。 // This program uses subscript notation with a pointer // variable and pointer notation with an array name. #include iostream #include iomanip using namespace std; int main() {const int NUM_COINS 5;double coins[NUM_COINS] {0.05, 0.1, 0.25, 0.5, 1.0};double *doublePtr; // Pointer to a double// Assign the address of the coins array to doublePtrdoublePtr coins;// Display the contents of the coins array// Use subscripts with the pointer!cout setprecision (2);cout Here are the values in the coins array:\n;for (int count 0; count NUM_COINS; count)cout doublePtr [count] ;// Display the contents of the coins array again, but this time use pointer notation with the array name!cout \nAnd here they are again:\n;for (int count 0; count NUM_COINS; count)cout *(coins count) ;cout endl;return 0; }程序输出结果 Here are the values in the coins array: 0.05 0.1 0.25 0.5 1 And here they are again: 0.05 0.1 0.25 0.5 1注意当一个数组的地址分配给一个指针时就不需要地址运算符了。由于数组的名称已经是一个地址所以使用 运算符是不正确的。但是可以使用地址运算符来获取数组中单个元素的地址。 例如numbers[1] 得到 numbers[1] 的地址。在程序下面程序中就使用了该技巧。 // This program uses the address of each element in the array. #include iostream #include iomanip using namespace std; int main() {const int NUM_COINS 5;double coins[NUM_COINS] {0.05, 0.1, 0.25, 0.5, 1.0};double *doublePtr; // Pointer to a double//Use the pointer to display the values in the arraycout setprecision (2);cout Here are the values in the coins array:\n;for (int count 0; count NUM_COINS; count){doublePtr coins[count];cout *doublePtr ;}cout endl;return 0; }程序输出结果 Here are the values in the coins array: 0.05 0.1 0.25 0.5 1数组名称和指针变量的唯一区别是不能改变数组名称指向的地址。例如假定存在以下定义 double readings[20], totals[20]; double *dptr;那么以下语句是合法的 dptr readings; // 使 dptr 指向 readings dptr totals; // 使 dptr 指向 totals但是以下语句则是非法的 readings totals; // 非法不能改变 readings totals dptr; // 非法不能改变 totals数组名称是指针常量。不能让它们指向除了它们所代表的数组之外的任何东西。
http://www.yutouwan.com/news/437932/

相关文章:

  • 农村建设捐款网站安卓app开发多少钱
  • 如何查询网站的访问量网站建设拾金手指下拉十九
  • 新建网站如何被搜索公司简介范文(共10篇)
  • 做导购网站如何获利江阴市住房和城乡建设局网站
  • 网站开发下单功能深圳网站建设制作公司
  • 电影网站怎么做推广网站建站的技术解决方案
  • 建网站logo怎么做wordpress上传图片错误
  • 商城型外贸网站建设中小企业网络营销存在的问题研究论文
  • 创新的网站建设wordpress邮箱验证码注册
  • 网站制作赚钱吗公司的网站打不开
  • 找设计案例的网站小说网站排名前十
  • 电子商务网站设计原理名词解释商城网站功能介绍
  • 深圳做生鲜食材的网站叫什么wordpress 清理
  • 公司网站怎么建立需要多少钱国内10大搜索引擎
  • 手机网站 好处网站维护与建设合同
  • 青岛网站设计公司联系方式上海未来网站建设公司
  • 企业商务网站优化网站推广阶段
  • 江苏大汉建设实业集团网站四川平台网站建设哪里有
  • 一级a做爰片软件网站毕业设计做视频网站
  • 江西网上注册公司流程网站如何做seo优化
  • 工信部网站备案规定wordpress 浮动定位
  • 郑州陆港开发建设有限公司网站百度收录最高发帖网站
  • 上海市网站建设加盟微平台推广
  • 下载的网站模板怎么进入后台怎样建设网站是什么样的
  • 怎么建设一个音乐网站中国有几家网络公司
  • 秦皇岛网站制作与网站建设广州建外贸网站公司
  • 做网站要不要交税手机网站怎么制作内容
  • 长沙网站推广优化手机客户端下载安装
  • iphone做网站服务器wordpress修改主题头部
  • 怎么给网站备案授权购买网站