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

网站访问速度分析营销方案的几个要素

网站访问速度分析,营销方案的几个要素,查网站排名,店铺logo免费一键生成指针速览 指针1.野指针与空指针2. 空类型指针 void *3. 指针常量4. 常量指针5. 指向常量的指针常量6. 指针操作数组6.1 数组名作为函数参数 7. 多级指针8. 函数指针8.1 函数指针数组 最后 指针 指针就是内存的字节单元编号地址,指针变量就是存放地址的变量。 1.野…

指针速览

  • 指针
    • 1.野指针与空指针
    • 2. 空类型指针 void *
    • 3. 指针常量
    • 4. 常量指针
    • 5. 指向常量的指针常量
    • 6. 指针操作数组
      • 6.1 数组名作为函数参数
    • 7. 多级指针
    • 8. 函数指针
      • 8.1 函数指针数组
  • 最后

指针

指针就是内存的字节单元编号地址,指针变量就是存放地址的变量。

1.野指针与空指针

  野指针是指,指针变量被赋值了一个随意的数值,这个数值并不是已知变量的内存地址,这个数值指向的区域未知,导致这个指针没有实际意义,如果对这个指针指向的内存区域进行操作还会导致错误。

  例如下面都是野指针:

int *p;
p=0x12345678;//给指针变量赋值了一个随意的数值
*p=20;		//对未知区域赋值,报错
//输出报错,段错误
Segmentation fault (core dumped)int a=123;
p=a;	//给指针变量赋值了一个随意的数值

  空指针是指指针变量没有指向任何变量,该指针变量空闲可用。用代码表示就是 该指针变量指向NULL。NULL是一个值为0的宏常量。

#define NULL ((void *)0)
//空指针
int *p=NULL;

2. 空类型指针 void *

   void * 可以指向任何变量的内存空间,是一个万能指针。

//可以写成 void *p = NULL;  初始化//案例
void *p;
int a=100;
char c='W';p=NULL;
//p=(void *)&a;	
p=&a;
printf("%d\n",*(int *)p);	//输出100//p=(void *)&c;
p=&c;
printf("%c\n",*(char *)p);	//输出W

3. 指针常量

意思是这个指针变量是一个常量,指向的地址不能改变,也就是指针变量的内容不能变,指向的值可以变;

int i = 9;
//指针常量
int *const p = &i;
//改变指向的值
*p = 3;

4. 常量指针

指针的指向可以变,指向的值不能变;

int i=9;
int j=10;
int const *p = &i;  //或者const int *p = &i;
printf("%d\n",*p);	//输出9
//*p=20; //修改指向的值,报错 
p=&j;	//修改指向 
printf("%d\n",*p);	//输出10

5. 指向常量的指针常量

既不能修改指向,又不能修改指向的值

int i = 9;
int const *const p = &i; //或者 const int const *p = &i;

6. 指针操作数组

数组名就是数组的地址。

int a[10]={1,2,3,4,5,6,7,8,9,0};
int len=sizeof(a)/sizeof(a[0]);
int i;
//方式一,使用i变量
for(i=0;i<len;i++)
{printf("%d,",*(a+i));
}
printf("\n");
//方式二,使用临时指针变量int *p=a;
for(i=0;i<len;i++)
{printf("%d,",*p);p++;
}//输出
1,2,3,4,5,6,7,8,9,0,
1,2,3,4,5,6,7,8,9,0,

6.1 数组名作为函数参数

void printArr(int *a,int len)
{int i;for(i=0;i<len;i++){printf("%d,", a[i]);//printf("%d,", *(a+i));}printf("\n");
}int main()
{int a[]={1,2,3,4,5};int len=sizeof(a)/sizeof(a[0]);printArr(a,len);return 0;
}

7. 多级指针

int m=10;		
int *n=&m;		//*n就是m
int **i=&n;		//*i就是n,**i就是m
int ***j=&i;	//*j就是i,**j就是n,***j就是mprintf("%d\n",*n);		//10
printf("%d\n",**i);		//10
printf("%d\n",***j);	//10

8. 函数指针

函数名就是函数的地址,说明函数也是存在内存中的,可以利用它的地址调用函数。

函数指针可以指向同类型的函数,要求参数类型,返回值一样。

函数指针就是一个指针,指向的是一个函数。

#include <stdio.h>int sum(int a,int b);
int des(int a,int b);
int mul(int a,int b);int main()
{//定义一个函数指针,指向的函数返回值是int,参数是 int,int int(* pfun)(int a,int b)=NULL;//赋值//直接使用  pfun=sum; 也可以pfun=&sum;printf("%d\n",pfun(1,2));		//3pfun=&mul;printf("%d\n",pfun(4,2));		//8pfun=&des;printf("%d\n",pfun(5,3));		//2return 0;
}int sum(int a,int b)
{return a+b;
}int des(int a,int b)
{return a-b;
}int mul(int a,int b)
{return a*b;
}

8.1 函数指针数组

#include <stdio.h>int sum(int a,int b);
int des(int a,int b);
int mul(int a,int b);int main()
{//定义一个函数指针,指向的函数返回值是int,参数是 int,int int(* pfun[3])(int a,int b)={sum,des,mul};int i;for(i=0;i<3;i++){printf("%d\n",pfun[i](10,5));}return 0;
}int sum(int a,int b)
{return a+b;
}int des(int a,int b)
{return a-b;
}int mul(int a,int b)
{return a*b;
}//输出
15
5
50

最后

推荐一个零声教育学习教程,个人觉得老师讲得不错,分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:链接

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

相关文章:

  • line 设计网站网站建设三站合一微信小程序
  • 360 的网站链接怎么做wordpress 本地头像
  • c 博客网站开发教程新圩做网站公司
  • 男女做污的网站上榜网络
  • 网址怎么申请网站邢台做网站推广的公司是哪家?
  • 做dnf辅助官方网站企业网站如何找词
  • 佛山市网站建设分站多少钱wordpress网站空白
  • 网站设计师工资怎样广告公司宣传语
  • 建设网站找哪家在什么网站可以接活做
  • 照片展示网站seo诊断优化方案
  • 珠海斗门建设局网站国外wordpress电影模板
  • 有什么网站可以免费神华集团两学一做网站
  • 网站网络wordpress 多页
  • 犀牛云做网站怎么这么贵医药o2o平台有哪些
  • 最稳定的免费的资源共享网站网络服务商电话
  • 建立网站外链常用的渠道有哪些常德论坛市民留言尚一网
  • 主播网站怎么建立炒币做合约哪个网站最好
  • 广东网站建设费用网站优化公司排行
  • 路桥贝斯特做网站好吗网站建设当前位置图标
  • 如何让各大搜索引擎识别新建网站云空间可以做网站
  • 内网建设网站小程序平台介绍怎么写
  • 南通制作网站公司企业起名网站怎么做
  • 广州外贸网站开发优秀设计赏析网站
  • 大学有吗网站建设飞翔时代网站建设
  • 望京网站开发西部数码装wordpress
  • 郑州哪家公司做网站好怎样进入公众号
  • 网站后台被百度蜘蛛抓取苏州和城乡建设局网站
  • 单位网站维护 网站建设岗位宁波seo推广哪家公司好
  • 织梦做淘宝客网站视频教程百度指数的数据来源
  • 哪个网站可以做纸箱怎么拿到百度推广的代理