指针数组如何定义_指针数组如何定义函数

指针数组如何定义_指针数组如何定义函数浅谈C语言指针的四要素学技术,重在日拱一卒、一点一滴的积累。今天一起来分析C语言的指针应用时候要注意的四个要素。为书写方便,本文用uchar代替unsigned char。以下内容,只代表个人观点,不一定对

浅谈C语言指针的四要素
  学技术,重在日拱一卒、一点一滴的积累。

  今天一起来分析C语言的指针应用时候要注意的四个要素。

  为书写方便,本文用uchar代替unsigned char。

  以下内容,只代表个人观点,不一定对,仅供参考,随便看看。

  指针数组如何定义_指针数组如何定义函数指针数组如何定义_指针数组如何定义函数

  变量

  在C语言程序运行中,其值可以改变的量称为变量。

  一个变量主要由两部分构成:

  一个是变量名,一个是变量值。

  每个变量都有一个变量名,在内存中占据一定的存储单元(地址),并在该内存单元中存放该变量的值。

  1.1、变量的定义

  变量类型 变量名

  uchar a;

  说明:

  定义一个字符型变量a,a的取值范围为0-255。

  1.2、函数的定义

  函数的声明形式为:

  函数类型 函数名(数据类型 形式参数, 数据类型 形式参数, ……);

  案例:char niu( int b, float c);

  说明:niu为函数名,该函数为字符型函数,也就是该函数的返回值必须是char类型;b和c为函数的形式参数。

  1.3、数组的定义

  数组类型 数组变量名

  uchar niu[3];

  说明:定义一个字符型数组,数组名为niu,数组长度为3。

  1.4、指针的定义

  指针类型 指针名

  uchar * sp;

  说明:定义一个指针,指针名为sp,指针指向的类型为uchar。

  指针数组如何定义_指针数组如何定义函数指针数组如何定义_指针数组如何定义函数

  指针四要素

  指针是C语言中非常重要的一个知识点,需要多理解、多练习。

  要用好指针,需要指针的四个要素:

  1、指针的类型

  2、指针指向的类型

  指针实际应用时指向的类型,必须和指针定义时规定指向的类型保持一致。

  3、指针的值

  指针的值就是指针指向地址。

  指针在使用之前,必须有固定的指向,否则就是野指针,会出现不可预知的错误。

  4、指针本身占用的内存地址

  案例1:

  int *sp,x; char yx=3;sp=&x;

  说明:

  1、指针sp的类型为int*型;

  2、指针sp指向的类型为int, 如果sp=&y;这是错误的,因为sp指针定义时规定指向的类型为int,而不是char。

  3、指针sp指向x变量所在的内存地址,x的值为3,那么*sp的值也是3。

  4、指针sp本身占用内存空间为4,C语言中,不管什么类型的指针,占用内存空间大小均为4。

  5、如果在KEILC编译环境下,C51单片机中定义一个指针变量,占用3个字节的地址空间,ARM中定义一个指针变量,占用4个字节的地址空间。

  案例2:

  uchar **ss;uchar *sp, x; uchar niu[10]={3,6,7};sp=niu;ss=&sp;

  说明:

  第一行代码:指针ss的类型为int**型,定义一个二级指针变量,它指向一个指针变量(它存的也是一个变量地址,只不过是一个指针变量的地址);

  第二行代码:定义sp是一个指针,x是一个字符型变量;

  第三行代码:定义一个字符型数组niu;

  第四行代码:将数组niu首地址送给sp;

  第五行代码:将指针sp的地址送给ss,也就是ss指针指向的地址里面存放的是一级指针sp的地址。

  在编译器确定的情况下:

  uchar a,b,c,x,y,z;uchar *sp;short *ss;int *zz;a=sizeof(sp); //a的值为4 b=sizeof(ss); //b的值为4 c=sizeof(zz); //c的值为4 x=sizeof(*sp); //x的值为1y=sizeof(*ss); //y的值为2z=sizeof(*zz);//z的值为4

  指针数组如何定义_指针数组如何定义函数指针数组如何定义_指针数组如何定义函数

  指针总结

  3.1、指针的定义

  如果uchar sp ,则sp为字符型变量;

  如果uchar *sp,则sp为指向字符型数据的指针。

  3.2、指针的使用

  指针数组如何定义_指针数组如何定义函数指针数组如何定义_指针数组如何定义函数

  如果:

  uchar a,b,c,d;

  uchar *sp;

  且指针如上图所示sp指向30H,

  那么:

  a=*sp; //a的值为8

  b=*sp+1;//b的值为9

  c=*sp++;//c的值为8,指针指向31H地址。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/96111.html

(0)
上一篇 2024年 5月 23日 下午5:02
下一篇 2024年 5月 23日

相关推荐

关注微信