指针类型学习总结(函数指针、数组指针和指针数组)
2015-12-03 13:55
337 查看
December 3, 2015 1:41 PM
牛刀小试常见指针的含义
深入浅出不常见指针的含义
示例
输出结果
解释
指针是C语言的一大特色,让我们可以访问硬件,让c变得威力无穷,然而,与之相伴的是不小的风险。
==注意:以上类型的判断关键在于优先级的判断,[]的优先级比高,()优先级最高。*==
输出结果
4236901
2
解释
x是一个数组名,代表一个常量指针,指向数组的首地址;
y是一个指针,指向一位数组x,y+1后指向的是数组最后一个地址的下一个地址;
z是一个普通指针,z+1后,指向的是数组首地址的下一个地址。
牛刀小试常见指针的含义
深入浅出不常见指针的含义
示例
输出结果
解释
指针是C语言的一大特色,让我们可以访问硬件,让c变得威力无穷,然而,与之相伴的是不小的风险。
1.牛刀小试–常见指针的含义
形式 | 含义 |
---|---|
void (*f)() | 函数指针,本质是一个指针 |
void* f() | 函数返回指针,指针函数,本质是一个函数 |
const int * | 常量指针,指针本身不可变 |
int* const | 指向const修饰内容的指针,指针本身可变 |
const int *const | 指向const修饰的内容的常量指针 |
2.深入浅出–不常见指针的含义
形式 | 含义 |
---|---|
float (**p)[10] | p是一个二级指针,指向的是一个一维数组指针 |
float **p[10] | p是一个指针数组,数组中每一个元素都是指向指针的指针 |
float*((*p)[10]) | p是一个指向一维数组的指针,数组中每个元素的类型是float* |
float(*p[10])() | p是一个指针数组,数组中每一个元素都是一个函数指针 |
float*(*p)[10] | 等价于float*((*p)[10]) |
float(*(*F)(int,int))(int) | F是一个函数指针,指向函数类型输入两个int变量,返回一个 |
函数指针,这个函数指针输入一个变量,返回一个int。 |
3.示例
int x[10] = {1,2,3,6,5,4,9,8,7,5}; int(*y)[10] = &x; int *z = (int*)(&x); cout << **(y+1) << endl <<*(z+1);
输出结果
4236901
2
解释
x是一个数组名,代表一个常量指针,指向数组的首地址;
y是一个指针,指向一位数组x,y+1后指向的是数组最后一个地址的下一个地址;
z是一个普通指针,z+1后,指向的是数组首地址的下一个地址。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 关于指针的一些事情
- 如何写好 C main 函数
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua和C语言的交互详解
- Lua实现split函数
- Lua常用时间函数使用实例
- Lua函数与字符串处理简明总结
- Lua学习笔记之表和函数
- Lua中实现sleep函数功能的4种方法