定义 含义
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.可以实现动态存储分配
指针学完了,今天眼镜丢了,真他妈的背啊!现在头晕的来,今天到此结束。
明天学习结构体,又是全新的概念!