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

深圳品牌衣服店名称免费网站seo排名优化

深圳品牌衣服店名称,免费网站seo排名优化,贵阳互联网公司有哪些,下载免费网络软件C语言-指针 指针 指针的基本概念 指针的定义 指针:就是保存地址的变量 指针变量的定义: 类型名 *指针变量名 int i; int *p &i; //将变量i的地址存放在*p中,即p指向i int* p,q;等价于 int *p,q; //其中p是一个指向int类型的指针&a…

C语言-指针

指针

指针的基本概念

指针的定义

指针:就是保存地址的变量

指针变量的定义:

类型名 *指针变量名
int i;
int *p = &i; //将变量i的地址存放在*p中,即p指向i
int* p,q;等价于 int *p,q; //其中p是一个指向int类型的指针,而q是一个int类型的变量,所以*是加给了p而不是int,也就是说*p是int
int *p,*q; //表示p和q都是指针
char *pa; //定义一个指向字符型的指针变量
int *pb; //定义一个指向整型的指针变量

注意:

  • 指针变量的值是内存的地址
    • 普通变量的值是实际的值
    • 指针变量的值是具有实际值的变量的地址
指针作为参数
void f(int *p); //在被调用的时候得到了某个变量的地址
int i = 0;f(&i); //在函数里面可以通过指针当问外面的i

举例:

  • 指针存放地址
#include <stdio.h>
void f(int *p);int main(void)
{int i = 6;printf("&i = %p\n",&i); //打印i的地址f(&i); //将i的地址传递给指针preturn 0;
}void f(int *p)
{printf("p=%p\n",p);
}

结果如下:

在这里插入图片描述
26110200695.png&pos_id=img-G3sWvg4l-1749041525469)

上述结果表明,指针p里存放的是i的地址,而非变量数值

  • 通过指针访问变量值
#include <stdio.h>
void f(int *p);int main(void)
{int i = 6;printf("&i = %p\n",&i); //打印i的地址f(&i); //将i的地址传递给指针preturn 0;
}void f(int *p)
{printf("p = %p\n",p);printf("*p = %d\n",*p);
}

结果如下:

在这里插入图片描述

上述结果表明,p变量存放的是变量i的地址,而*p存放的是变量i的值

  • 通过指针修改变量值
#include <stdio.h>
void f(int *p);
void g(int k);
int main(void)
{int i = 6;printf("&i = %p\n",&i); //打印i的地址f(&i); //将i的地址传递给指针pg(i);return 0;
}void f(int *p)
{printf("p = %p\n",p);printf("*p = %d\n",*p);*p = 26;
}
void g(int k)
{printf("k = %d\n",k);
}

结果如下:

在这里插入图片描述

上述结果表明,当*p改变时,i的值也随之变化

  • 总结
    • 指针变量p用于访问地址
    • 变量*p用于访问和修改指针p指向地址所对应的数值
    • *p进行值的改变时,指针p指向的地址所对应的值也会随之改变(相当于覆盖)
关于scanf函数
int i;
scanf("%d",i); //语法错误
scanf("%d",&i); //正确写法

当出现上述错误写法时,编译器不会报错,因为i时整型的数值,和地址写法一样,例如:i = 6,将i直接传给scanf()时,scanf()函数会直接将i的数值6当作地址来处理,因此不会出现编译错误,但是运行一定会出错,因为scanf()函数将传入的数据写到了错误的地址上。要注意的是,在编写过程中,我们需要传入的是i的地址,即&i。

指针的应用场景

交换两个变量的值
#include <stdio.h>void swap(int *pa,int *pb);int main()
{int a = 5;int b = 6;swap(&a,&b);printf("a = %d,b = %d",a,b);return 0;
}
void swap(int *pa,int *pb) //用于交换变量值的函数
{//进行数值交换int t = *pa;*pa = *pb;*pb = t;
}

结果如下:

在这里插入图片描述

带回多个结果
  • 函数返回多个值,某些值就只能通过指针返回
  • 传入的参数实际上是需要保存带回的结果的变量
#include <stdio.h>void minmax(int a[],int len,int *max,int *min);int main(void)
{int a[] = {1,2,3,4,5,6,7,8,9,12,13,14,16,17,21,23,55};int min,max;minmax(a,sizeof(a)/sizeof(a[0]),&min,&max);printf("min = %d,max = %d\n",min,max);return 0;
}
void minmax(int a[],int len,int *max,int *min)
{int i;*min = *max = a[0];for(i = 1;i < len;i++){if(a[i] < *min){*min = a[i];}if(a[i] > *max){*max = a{i};}}
}

结果如下:

在这里插入图片描述

  • 函数的结果不止一个,需要通过指针把要接收的结果的变量地址传进去,经过函数加工后把值传回。
  • 虽然*min*max是作为参数传入的,但是其作用是将函数程序加工后的结果带回
通过指针返回运算状态
  • 函数返回运算的状态,结果通过指针返回

  • 常用的套路是让函数返回特殊的不属于有效范围内的值来表示出错

    -1或0(在文件操作系统中会看到大量的例子)

  • 当任何数值都是有效的可能结果时,就需要分开返回

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

相关文章:

  • 网站开发制作公司有哪些什么做网站
  • 站长工具app入替皮杖 wordpress
  • 微信平台与微网站开发使用html制作网页
  • wordpress数据库承载单页网站如何优化
  • 集美那里有教网站建设做网站公司宣传语
  • 重庆秀山网站建设费用天津做网站价格
  • 商家网站建设西安企业建站在哪里做
  • 内蒙古住房和城乡建设部网站主流网站关键词排名
  • 设计网站私单价格网络营销是什么的组成部分
  • 珠宝商城网站模板qq群网站制作
  • 工程建设工资高吗网站优化入门免费教程
  • 企业家网站建设建设部官方网站查询
  • 深圳 做网站seo域名综合查询
  • 网站建设wuliankj怎么开发平台软件
  • 廊坊做网站上海公司电话wordpress 浏览器缓存
  • 什么网站可以做TCGA病理分期公司以优化为理由裁员合法吗
  • 网站建设期中考试题自学python需要的软件
  • 安徽省建设工程信息网站进不了广州做外贸网站建设
  • 网站建设哪个品牌好wordpress做中文官网
  • 保险网站建设方案网站建设预算申请如何写
  • 重庆建设工程信息网站上海网站建设赢昶
  • 青海省公路建设管理局官方网站上海外贸公司排名榜
  • php网站建设带数据库模板江阴建设银行网站
  • 株洲 网站建设 公司网站外链
  • 长春网站建设推广uc官网网站开发者中心
  • 哪一个网站是专门做兼职的广东省广州市白云区区号
  • 国美在线网站域名建设我想开网站
  • 成都旅游网站建设建立网站站点
  • 阿里云怎样做公司网站南昌网站开发建设
  • 温州专业网站推广青岛餐饮加盟网站建设