C语言学习第十二天(指针总结)

                     定义                含义

                       int i               定义整型变量i

                       int *p              p为指向整型数据的指针变量

                       int a[n]            定义整型数组a,它有n个变量

                       int *p[n]           定义指针数组p,它由n个指向整型数据的指针元素组成的

                       int *(p)[n]         p为指向含n个元素的一维数组的指针变量

                       int f()             f为带回整型函数值的函数

                       int *p()            p为带回一个指针的函数,该指针指向整型数据

                       int (*p)()          p为指向函数的指针,该函数返回一个整型值

                       itn **p             p是一个指针变量,它指向一个指向整型数据的指针变量


1).指针变量加减一个整数

如:p++,p--,p+i,p-i,p+=i,p-=i 。

这里并不是简单的指针变量原值加减一个整数,而是将指针变量原值(地址)和他指向的变量所占的内存单元字节数相加减

如p+i的地址计算为:p+c*i c为字节数,在大多数微机系统中整形为2,实型为4,字符型为1。

2).指针变量赋值    

                       p=&a                将a的地址赋给p

                       p=array             将数组array的首地址赋给p

                       p=&array[i]         将数组array第i个元素的地址赋给p

                       p=max               max为已定义的函数,将max的入口地址赋给p

                       p1=p2               p1和p2都是指针变量,将p2的值赋给p1

3).指针变量可以有空值,即该指针变量不指向任何变量 ,可以这样表达  -> 先定义#define NULL 0 -> P=NULL;

4).两个指针变量可以相减,但相加却毫无意义。

5).两个指针变量比较:若两个指针指向同一个数组的元素,则可以进行比较。



void指针类型 :抽象的类型的数据,在将它的值赋给另一个指针变量时要进行强制类型转换使之合适于被赋值的变量类型。

如:

       char *p1;

       void *p2;

       p1=(char *)

也可以用(void *)p1将p1的值转换成void *类型

如:    p2=(void *)p1;

函数为:

void * fun(char ch1,char ch2);

表示fun返回一个地址 指向个空类型,如要使用此地址,需根据情况进行类型转换

如:

p1=(char *)fun(ch1,ch2);


指针是C语言中的一个重要概念,是C的特色。

使用指针的优点有:

1.提高执行效率

2.在调用函数时变量改变了的值能够在主调函数中使用,即可从函数调用处得到多个可改变的值

3.可以实现动态存储分配


指针学完了,今天眼镜丢了,真他妈的背啊!现在头晕的来,今天到此结束。

明天学习结构体,又是全新的概念!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值