登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[学习笔记] 指针数据类型和运算小结

[复制链接]
发表于 2017-1-22 21:59:08 | 显示全部楼层 |阅读模式
学习笔记
学习科目: c语言-指针
学习安排: 视频,vc++上机
开始时间: 2017-01-20
结束时间: 2017-01-22

一、有关指针的数据类型的小结

定义 含义
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为指向函数的指针,该函数返回一个整型值
int **p; p是一个指针变量,他指向一个整型数据的指针


二、指针运算小结:
1、指针变量加(减)一个整数
例如:p++,p--,p+i,p-i,p+=i,p-=i等(指向上一个元素或者指向下一个元素)
2、指针变量赋值
将一个变量地址赋给一个指针变量,
例如:
p = &a; 将变量a的地址赋给p
p = chai; 将数组chai首元素地址赋给p
p = &chai; 将数组chaii个元素的地址赋给p
p = max; max为已定义的函数,将max的入口地址赋给p
p1 = p2;   p1p2都是指针变量,将p2的值赋给p1

3、指针变量可以有空值,即该指针变量不指向任何变量,
可以这样表示:P =NULL;   //NULL宏定义其值为0
4、两个指针变量可以相减
如果两个指针变量都指向同一个数组中的元素,则两个指针变量值之差是两个指针之间的元素个数
5、两个指针变量比较
若两个指针指向同一个数组的元素,则可以进行比较。
指向前面的元素的指针变量“小于”指向后面元素的指针变量。



三、关于void类型
1Void真正发挥的作用在于:
1)对函数返回的限定,
2)对函数参数的限定;
例如:void  abc(void);
2Void指针
ANSIC新标准增加了一种“void”指针类型,即不指定他是指向哪一种类型数据的指针变量。
例如:void  *p;
表示指针变量p不指向一个确定的类型数据,它的作用仅仅是用来存放一个地址。
Void指针他可以指向任何类型数据。也就是说,可以用任何类型的指针直接给void指针赋值。但是,如果需要将void指针的赋值给其他类型的指针,则需要进行强制转换。


评分

参与人数 1铜板 +66 收起 理由
夜色星空 + 66 很详细

查看全部评分

...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表