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

凡客诚品网站推广重庆建设工程信息网官网查询系统官网

凡客诚品网站推广,重庆建设工程信息网官网查询系统官网,网店出租网站程序,主机屋wordpress建站数组指针定义 类比#xff1a; 整型指针--指向整型的指针 int a 10; int* pa a; 字符指针--指向字符的指针 char ch a; char* pc ch; 数组指针--指向数组的指针 int arr[10] { 0 }; int(*p)[10] arr; // 数组指针 区分#xff1a;指针数组和数组…数组指针定义 类比 整型指针--指向整型的指针 int a 10; int* pa a; 字符指针--指向字符的指针 char ch a; char* pc ch; 数组指针--指向数组的指针 int arr[10] { 0 }; int(*p)[10] arr; // 数组指针 区分指针数组和数组指针 int(*p1)[10]; // 数组指针 int* p2[10]; // 指针数组 p1先和*结合说明p是一个指针变量指向的是一个大小为10个整型的数组所有p1是一个指针指向一个数组p1是数组指针。 p2是一个数组有10个元素存放int*类型p2是指针数组。 注[ ]优先级高于 * 必须使用 () 使p1与 * 先结合。 数组名和数组名 数组名绝大多数情况下是数组首元素地址但是有两个例外 1 数组名数组名表示整个数组 2 sizeof(数组名数组名表示整个数组计算的是整个数组的大小。 int arr[10]; 对于上面的数组arr和arr分别是什么意思 我们知道arr是数组名数组名表示首元素的地址arr是否和arr相同先看下面这段代码。 int main() {int arr[10] { 0 };printf(arr %p\n, arr);printf(arr %p\n, arr);return 0; } 运行结果 可见arr和arr打印的地址一样那么它是否和arr一样表示的是数组首元素地址呢在看下面这段代码 int main() {int arr[10] { 0 };printf(arr %p\n, arr);printf(arr %p\n, arr);printf(arr1 %p\n, arr 1);printf(arr1 %p\n, arr 1);return 0; } 运行结果 可以发现arr和arr虽然值一样但它们的意义应该不一样。事实上arr表示的是整个数组的地址在本例中arr的类型是int(*)[10]即数组指针类型。arr1偏移了整个数组的大小40打印的地址为十六进制arr1则偏移了一个整型大小。 所以数组名和数组名的值虽然相同但是它们的意义并不相同可以理解为一个是数组首元素地址另一个是数组首地址本质是它们的类型不同一个是同类型指针另一个则是数组指针。 理解了数组指针和数组名的概念在来看一下指针数组指针类型是什么样的 int* arr[10]; // 整型指针数组 int* (*p)[10] arr; // 整型指针数组指针 数组指针的使用 引入--指针访问一维数组 我们知道可以通过下标或指针访问数组如下 int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int sz sizeof(arr) / sizeof(arr[0]);// 下标访问数组for (int i 0; i sz; i){printf(%d , arr[i]);}printf(\n);// 指针访问数组int* p arr;for (int i 0; i sz; i){printf(%d , *(p i));//*(pi)与p[i]等价}return 0; } 运行结果 数组指针访问二维数组 int arr[3][3] { 1,2,3,4,5,6,7,8,9 }; 通过下标访问二维数组 int main() {int arr[3][3] { 1,2,3,4,5,6,7,8,9 };for (int i 0; i 3; i){for (int j 0; j 3; j){printf(%d , arr[i][j]);}printf(\n);}return 0; } 运行结果 arr[i]其实是数组每一行首元素的地址arr[i][j]等价*(arr[i]j)。对于二维数组它的首元素是数组第一行它的数组名就是数组第一行的地址是一个数组指针。与用指针访问一维数组类似我们可以定义一个数组指针用来访问二维数组但这并不是数组指针的真实用途。 数组指针的一个主要用法是作为参数接收二维数组例如 void print_arr(int(*arr)[3], int row, int col) {int i 0;for (i 0; i row; i){for (int j 0; j col; j){printf(%d , arr[i][j]);}printf(\n);} } int main() {int arr[3][3] { 1,2,3,4,5,6,7,8,9 };print_arr(arr, 3, 3);return 0; } 运行结果 理解二维数组名 事实上二维数组传参int arr[][3]的本质就是传递一个数组指针即二维数组的数组名。关于数组传参和指针传参将在下篇深入讲解。 继续学习指针进阶内容见下篇数组参数/指针参数
http://www.hkea.cn/news/14269178/

相关文章:

  • 如何建开发手机网站西安现在可以自由出入吗
  • 推荐网站建设服务商做商品抬价是什么兼职网站
  • 网站建设是虚拟行业吗wordpress使用什么语言
  • 四平市建设局网站查询建设资质的网站
  • 开发企业网站费用wordpress用户函数
  • 做网站虚拟主机怎么选择设计素材的网站
  • 做网页的软件做网站淄博高端网站
  • 合肥营销网站建设图标设计网站
  • 游戏网站策划书金融代理平台代理加盟
  • 排版设计网站有哪些拉了专线可以直接做网站吗
  • 网站建设 好牛申请免费建站
  • 网站运营策划ppt如何创建网站小程序
  • 外贸网站特效软件外包服务内容
  • 购物网站开发方案重庆沙坪坝新闻最新消息
  • 长沙岳麓区网站建设工程与建设
  • 东莞网站设计行情网络广告投放公司
  • 高端大气上档次网站2021国内军事新闻大事件
  • 直接进入网站的代码个体户能做网站备案吗
  • 备案域名网站大全江苏靖江苏源建设有限公司招标网站
  • 连云港网站建设电话新增网站推广教程
  • 怎么做外贸网站seo建设工程施工合同无效
  • 网站建设业务WordPress 有趣插件
  • 网站推广介绍湛江互联网公司
  • 如何开发一个视频网站wordpress 首页文章列表
  • 濮阳 网站建设加强经管学院网站建设
  • 手机如何搭建网站做网站运作国珍
  • 网站建设推广需要多少钱本地主机做网站
  • ftp网站上传成功后怎么做网站维护 上海
  • 网站布局模板怎么去管理好一个团队
  • 广东网站系统建设网站建设项目风险管理的主要内容