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

哪些网站做的好住房和城乡建设部建设司网站首页

哪些网站做的好,住房和城乡建设部建设司网站首页,高德地图为什么没有国外的地图,动漫是怎么制作的前言:本篇文章将继续讲解有关指针的剩余基础知识。 学无止境,一起加油叭!! 目录 一.指针运算 1.指针 - 整数 2.指针的关系运算 3.指针 - 指针 二.指针与数组 三.二级指针 四.指针数组 总结 一.指针运算 指针运算包括以下三…

前言:本篇文章将继续讲解有关指针的剩余基础知识。

学无止境,一起加油叭!!


目录

一.指针运算

1.指针 +- 整数

 2.指针的关系运算

 3.指针 - 指针

二.指针与数组

三.二级指针

四.指针数组

总结


一.指针运算

指针运算包括以下三种:

  • 指针 +- 整数
  • 指针 - 指针
  • 指针的关系运算

1.指针 +- 整数

我们尝试用指针来打印一个数组的内容:

#include<stdio.h>
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int* p = arr;//数组名是数组首元素的地址int i = 0;for (i = 0; i < 10; i++){printf("%d ", *(p + i));}return 0;
}

我们在指针(上)中已经了解到,指针+-整数能够实现指针的跳动。

那么我们便能够根据这个办法来实现打印数组:

p指向的是数组的首元素地址,那么p + i就等于是指针跳到了数组下标为 i 的元素的地址

当然要实现这一点就必须要求数组和指针变量是相同的数据类型

 2.指针的关系运算

指针与指针之间也是可以比较大小的,比较的是指针所指向的地址的大小。

#include<stdio.h>
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int* p1 = &arr[4];int* p2 = &arr[5];if (*p1 > *p2){printf("hehe");}else{printf("haha");}return 0;
}

例如我们来比较一下p1和p2的大小,结果如下:

 3.指针 - 指针

指针-指针的实现必须满足两个条件:

  1. 两个指针指向同一块区域(一个数组等)
  2. 两个指针的类型相同
#include<stdio.h>
int main()
{int arr[10] = { 0 };int* p1 = &arr[9];int* p2 = &arr[0];printf("%d", p1 - p2);return 0;
}

来看上边的代码,会得到什么结果呢???

结果是9,有的小伙伴可能会猜是36,以为会是两个指针之间的字节个数

而实际上是两个指针之间的元素个数

二.指针与数组

如上代码,之所以能把数组和指针联系在一起,是因为数组名可以表示数组首元素的地址

但是数组名也有不同的用法:

  1. 1.sizeof(数组名):数组名单独放在sizeof内部,数组名则代表整个数组,计算的是数组的大小,单位是字节。
  2. &数组名:数组名代表整个数组,取出的是数组的地址,数组的地址和数组首元素的地址值是一样的,但是类型和意义是不一样的。

 三.二级指针

    int a = 5;
    int* p = &a;//p是指针变量,一级指针变量
    int** pp = &p;//pp是指针变量,二级指针变量

这样也很像套娃对不对,所谓二级指针,也就是存放一级指针变量地址的指针。当然也可以有三级、四级、五级等等等等,但是一般都不会用到,包括二级指针也是不常用的。

那么二级指针如果想要找到a的地址,就要解引用两次,第一次是找到*p的地址,第二次才能找到a的地址,所以要用** pp

四.指针数组

听到这个名字可能很多小伙伴会产生疑惑,这个到底是指针还是数组呢???

答案是数组

我们听说过整型数组,浮点型数组,字符数组,它们分别是存放整形、浮点型、字符的数组

那么指针数组也就是存放指针变量的数组

char* arr[5];//存放字符型指针的数组

int* arr2[4];//存放整型指针的数组

那么指针数组到底有什么用处呢???

我们可以用指针数组来模拟实现一个二维数组:

#include<stdio.h>
int main()
{int arr1[] = { 1,2,3,4,5 };int arr2[] = { 6,7,8,9,10 };int arr3[] = { 11,12,13,14,15 };int* arr[] = { arr1,arr2,arr3 };int i = 0;for (i = 0; i < 3; i++){int j = 0;for (j = 0; j < 5; j++){printf("%d ", arr[i][j]);}printf("\n");}return 0;
}

我们已经知道数组名是数组首元素的地址,所以我们就可以直接将数组名传入指针数组中,这样我们就相当于直接得到了三行元素,并且可以用相同的方法进行打印:

虽然模拟出来二维数组的样子,但其实并不是真的二维数组,我们知道二维数组的元素内存地址都是相连的,但这里我们所创建的三个数组都是互不相连的。

总结

指针的基础知识到这里就要结束啦,希望小伙伴们都能有所收获!

喜欢博主文章的小伙伴们不要忘记一键三连哦!下期我们将对结构体展开讲解,一起期待一下叭!

我们下期再见! 

http://www.yayakq.cn/news/126281/

相关文章:

  • 苏小小移动网站wordpress 简洁文章主题
  • 工具黄浦区seo网站建设
  • 网站后期运营方案步骤wordpress插件放到哪
  • 查网站域名备案查询系统网易企业邮箱过期了
  • 网站设计合同附件价格低的手机
  • 菏泽网站建设多少钱wordpress编辑文字内容
  • 文化企业官方网站开发方案书seo整站优化吧
  • 网站全站建设开题报告范文利用网站宣传 两学一做
  • 北京做网络工程公司的网站网站后台编辑技巧
  • 导航网站能个人备案老板合作网站开发
  • 成都网站关键排名北京建设网站公司推荐
  • 商商业网站建设wordpress外贸网站
  • 网站怎么管理济南企业建站品牌
  • 深圳建设招标网站首页30岁零基础学室内设计
  • 浙江平台网站建设找哪家怎么注册公司教程
  • win2008的iis7建网站流程金融代理平台代理加盟
  • 网站是做排行榜营销策划方案怎么做
  • 凡客诚品官方网店下载seo技术教程博客
  • 网站制作教学flash网站系统
  • 企业网站 联系我们crm系统主要干什么的
  • 在国内做敏感网站wordpress要求配置
  • 四川中天建设有限公司网站设计用哪些网站
  • 网站建设客户需求分析调查表谷歌浏览器下载安装(手机安卓版)
  • wordpress访问量统计简单网站建设优化推广
  • 做周边的网站wordpress页面添加照片
  • 东莞电子商务网站建设网站运营一月多少钱
  • ftp怎么找网站后台国内网店平台有哪些
  • 网站seo案例市场营销推广活动方案
  • 专门做老年旅游的网站wordpress 无标题
  • 推广网站联盟营销方法有哪几种