C-指针讲解
2016-10-31 本文已影响0人
剧情简介第一天
指针的类型是什么:
将指针的名字去掉即可
指针指向的是什么类型:
将指针的名字以及指针左边的*去掉
指针指向了哪里:
指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。
int *ptr //指针的类型是int * 指针指向的类型是int
int **ptr//指针的类型是int ** 指针指向的类型是int *
Example1:
int array[20];
int *ptr = array;
//此处略去为整型数组赋值的代码。
for(i = 0;i<10;i++)
{
(*ptr)++; //array的值加1
ptr++; //array的地址加1 如果是32位程序,则是加4(字节),因为地址是由字节构成的。
}
指针表达式:
一个表达式的最后结果如果是一个指针,那么这个表达式就叫指针表达式。
函数指针:
可以把一个指针声明成为一个指向函数的指针
ex:
int fun(char*,int);
int (*pfun)(char*,int);
pfun = fun;
//
int a =(*pfun)("abcdefg",7);