搜索
bottom↓
回复: 142

据说看懂这道题,就学会指针了......分享给大家看看

[复制链接]

出0入0汤圆

发表于 2011-2-17 17:15:49 | 显示全部楼层 |阅读模式
指针的使用一直都是初学者的第一道坎儿,绕来绕去的。。。以下这道题,据说琢磨透了,就基本不怕指针了..~~

用变量a给出下面的定义
a) 一个整型数
b)一个指向整型数的指针( A pointer to an integer)
c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer to an intege)r
d)一个有10个整型数的数组( An array of 10 integers)
e) 一个有10个指针的数组,该指针是指向一个整型数的。(An array of 10 pointers to integers)
f) 一个指向有10个整型数数组的指针( A pointer to an array of 10 integers)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an integer )

答案是
a) int a; // 一个整型数 An integer
b) int *a; // 一个指向整型数的指针 A pointer to an integer
c) int **a; // 一个指向指针的的指针 A pointer to a pointer to an integer
d) int a[10]; // 一个有10个整型数的数组 An array of 10 integers
e) int *a[10]; // 一个有10个指针的数组 An array of 10 pointers to integers
f) int (*a)[10]; // 一个指向有10个整型数数组的指针 A pointer to an array of 10 integers
g) int (*a)(int); // 一个指向函数的指针 A pointer to a function a that takes an integer argument and returns an integer
h) int (*a[10])(int); // 一个有10个指针的数组,指向一个整形函数并有一个整形参数 An array of 10 pointers to functions that take an integer argument and return an integer

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-2-17 17:26:01 | 显示全部楼层
面试的时候被考过好几次了,就是这几题,所以要是找工作的话记下吧,呵呵。

出0入0汤圆

发表于 2011-2-17 17:42:45 | 显示全部楼层
f,g,h 不是很懂

出0入0汤圆

发表于 2011-2-17 17:55:45 | 显示全部楼层
有几个不是很明白,但估计没机会用上

出0入0汤圆

发表于 2011-2-17 17:59:31 | 显示全部楼层
MARK!

出0入0汤圆

发表于 2011-2-17 18:00:13 | 显示全部楼层
貌似只有最后一个不懂,是不是可以及格了?

出0入0汤圆

 楼主| 发表于 2011-2-17 20:36:41 | 显示全部楼层
其实这是些绕口令 呵呵

出0入0汤圆

发表于 2011-2-17 20:54:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-17 21:23:21 | 显示全部楼层
这个很好啊~
"pointers on c" 上面的?

出0入0汤圆

 楼主| 发表于 2011-2-17 21:52:33 | 显示全部楼层
回复【8楼】librae8226
-----------------------------------------------------------------------

是面试的题库,面试官就喜欢拿这些变态的题来考人...

出0入0汤圆

发表于 2011-2-17 21:57:19 | 显示全部楼层
绕进去了。

出0入0汤圆

发表于 2011-2-17 22:21:51 | 显示全部楼层
绕一遍,发现,还可以!

出0入0汤圆

发表于 2011-2-17 22:37:15 | 显示全部楼层
h) int (*a[10])(int); // 一个有10个指针的数组

中文 翻译的有问题吧

出0入0汤圆

发表于 2011-2-17 23:37:12 | 显示全部楼层
jh

出0入0汤圆

发表于 2011-2-18 02:09:18 | 显示全部楼层
(⊙o⊙)

出0入0汤圆

发表于 2011-2-18 02:19:35 | 显示全部楼层
(⊙o⊙)

出0入0汤圆

发表于 2011-2-18 08:02:17 | 显示全部楼层
感觉还行

比自己在一年前强点

出0入0汤圆

发表于 2011-2-18 08:04:16 | 显示全部楼层
C不太熟,学习了

出0入0汤圆

发表于 2011-2-18 08:39:02 | 显示全部楼层
对于单片机开发,这些指针大部分不常用,我认为不是必需的。我一般是通过数组的方法代用。
但作为专业软件开发,还是有必要掌握。如大屏幕液晶显示,数据量非常大,用高级指针对数据引用,程序可以做得最简捷。对程序开发者来讲,指针是个非常好的变量。
我认为,要不要使用指针变量,其效果取决于程序数据量的大小。

出0入0汤圆

发表于 2011-2-18 09:15:59 | 显示全部楼层
回复【18楼】kent
-----------------------------------------------------------------------

感觉除了最后一个不太常用,前面的还是很常用的,这个题不变态啊,是基本的题!

出0入0汤圆

发表于 2011-2-18 10:11:34 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-2-18 10:20:10 | 显示全部楼层
感觉同19楼。

出0入0汤圆

发表于 2011-2-18 10:44:11 | 显示全部楼层
看了

出0入0汤圆

发表于 2011-2-18 11:10:48 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-2-18 11:45:57 | 显示全部楼层
感觉同19楼。

出0入0汤圆

发表于 2011-2-18 12:19:34 | 显示全部楼层
mark 指针

出0入0汤圆

发表于 2011-2-18 13:17:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-18 13:22:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-18 13:33:08 | 显示全部楼层
看起来似懂非懂····

出0入0汤圆

发表于 2011-2-18 14:13:16 | 显示全部楼层
jh

出0入0汤圆

发表于 2011-2-19 16:20:40 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-19 16:23:45 | 显示全部楼层
嗯,确实不错。几个题很有意思。

出0入0汤圆

发表于 2011-2-19 18:59:21 | 显示全部楼层
这个是基础题了,关键是要做到会用才是王道.

出0入0汤圆

发表于 2011-2-20 11:23:03 | 显示全部楼层
对指针不熟悉

出0入0汤圆

发表于 2011-2-20 16:12:46 | 显示全部楼层
这里看懂了还要看懂了它编译后的汇编是怎么实现的才算看懂了、

出0入0汤圆

发表于 2011-2-20 16:16:17 | 显示全部楼层
估计最后一个很多人都没遇到过、

出0入0汤圆

发表于 2011-2-20 22:13:59 | 显示全部楼层
回复【楼主位】Ian11122840 船儿舟
-----------------------------------------------------------------------

mark!

出0入0汤圆

发表于 2011-2-21 09:46:35 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-2-21 10:06:35 | 显示全部楼层
从来不记,用的时候查,所以我当初面试没过

出0入10汤圆

发表于 2011-2-21 10:41:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-21 20:33:16 | 显示全部楼层
b) int *a;  相当于  int (*a);
括号内含义:a是指针
括号外含义:指针指向类型是int

c) int **a; 相当于:int *(*a);
括号内含义:a是指针
括号外含义:指针指向类型是int *
   
e) int *a[10]; 相当于:int (*a[10]);
括号内含义:a是指针数组
括号外含义:指针指向类型是int

f) int (*a)[10];
括号内含义:a是指针
括号外含义:指针指向类型是int[10]

g) int (*a)(int);  
括号内含义:a是指针数
括号外含义:指针指向类型是int()(),//没有参数,返回int的函数

h) int (*a[10])(int);
括号内含义:a是指针数数组
括号外含义:指针指向类型是int()(),//没有参数,返回int的函数

出0入0汤圆

发表于 2011-2-21 21:05:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-21 21:22:50 | 显示全部楼层
mark指针

出0入0汤圆

发表于 2011-2-21 21:31:56 | 显示全部楼层
40楼g和h应该是int参数吧返回也是int

出0入0汤圆

发表于 2011-4-30 23:41:33 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-1 00:29:51 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-1 02:16:18 | 显示全部楼层
兄弟  这几个指针应用算是最基础的了  还没给你出++*p呢。 哈哈

出0入0汤圆

发表于 2011-5-1 09:37:58 | 显示全部楼层
mark 指针

出0入0汤圆

发表于 2011-5-1 09:40:10 | 显示全部楼层
mark 指针

出0入0汤圆

发表于 2011-5-1 15:53:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-1 16:36:47 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-5-1 17:02:21 | 显示全部楼层
jilu,回头细看

出0入0汤圆

发表于 2011-5-1 17:10:32 | 显示全部楼层
f和 h不懂
学习了!~~~~

出0入0汤圆

发表于 2011-5-1 18:23:21 | 显示全部楼层
mark 指针

出0入0汤圆

发表于 2011-5-1 21:22:53 | 显示全部楼层
我全会哦

出0入0汤圆

发表于 2011-5-2 13:28:25 | 显示全部楼层
貌似看过了。。。。

出0入0汤圆

发表于 2011-5-2 13:43:37 | 显示全部楼层
认真的mark

出0入0汤圆

发表于 2011-5-2 14:20:39 | 显示全部楼层
我就会前两个

出0入0汤圆

发表于 2011-5-2 20:56:28 | 显示全部楼层
看起来似懂非懂····

出0入0汤圆

发表于 2011-5-3 20:37:21 | 显示全部楼层
mark   好久都没用过指针了

出0入0汤圆

发表于 2011-5-4 13:41:32 | 显示全部楼层
看下<< C语言深度剖析>> ,都有讲到的,很不错的一本书!

出0入0汤圆

发表于 2011-5-5 18:08:56 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-5 18:16:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-5 19:19:31 | 显示全部楼层
不错

出0入0汤圆

发表于 2011-5-5 19:38:55 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-5-6 23:23:33 | 显示全部楼层
该好好学习指针了

出0入0汤圆

发表于 2011-6-4 23:55:08 | 显示全部楼层
长见识了

出0入0汤圆

发表于 2011-6-5 01:48:37 | 显示全部楼层
最后一个似懂非懂...
头像被屏蔽

出0入0汤圆

发表于 2011-6-7 09:56:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2011-6-7 10:00:27 | 显示全部楼层
mark .

出0入0汤圆

发表于 2011-6-7 11:41:24 | 显示全部楼层
f,h不懂,回家看书去

出0入0汤圆

发表于 2011-6-7 12:29:59 | 显示全部楼层
mark留着学习

出0入0汤圆

发表于 2011-6-7 17:07:50 | 显示全部楼层
留着了

出0入0汤圆

发表于 2011-6-7 17:42:36 | 显示全部楼层
感谢分享!

出0入0汤圆

发表于 2011-6-7 21:23:20 | 显示全部楼层
看懂了

出0入0汤圆

发表于 2011-6-7 21:34:57 | 显示全部楼层
g) int (*a)(int variables);
h) int (*a[10])(int variables);
工作了  做的是最下层的工作  可是一直在自学C,所以以上的题目感觉很是简单!

出0入0汤圆

发表于 2011-6-7 22:40:03 | 显示全部楼层
haohaojio

出0入0汤圆

发表于 2011-6-7 23:19:20 | 显示全部楼层
MARK 指针

出0入0汤圆

发表于 2011-6-8 00:01:24 | 显示全部楼层
学习了

出0入0汤圆

发表于 2011-6-8 10:15:33 | 显示全部楼层
呵呵,大概看了一下,主要是要找清楚指针到底指向谁,有点像绕口令呵呵

出0入0汤圆

发表于 2011-6-8 10:44:39 | 显示全部楼层
不错

出0入0汤圆

发表于 2011-6-8 17:22:45 | 显示全部楼层
先回帖, 再看

出0入0汤圆

发表于 2011-6-8 17:28:47 | 显示全部楼层
看过了, 再来盖楼

出0入0汤圆

发表于 2011-6-8 17:31:10 | 显示全部楼层
呵呵

出0入0汤圆

发表于 2011-6-8 17:44:29 | 显示全部楼层
有些懂有些则不明白。学习了!

出0入0汤圆

发表于 2011-6-10 10:24:22 | 显示全部楼层
make

出0入0汤圆

发表于 2011-6-10 16:53:48 | 显示全部楼层
《C语言程序设计》P255 表10.2

出0入0汤圆

发表于 2011-6-14 10:24:19 | 显示全部楼层
再来看看...

出0入0汤圆

发表于 2011-6-15 21:43:32 | 显示全部楼层
不错,有几个还不太明白

出0入0汤圆

发表于 2011-6-15 23:17:35 | 显示全部楼层
相信很多人对(int *a[10])( int ) 中 a 指针的定义感到困惑,我初看此题也想了很久,其实该指针的定义跟 int *a[10]本质上是相同的,我认为编译器在语法处理上是一致的,只是前者数组指针存储的内容为函数入口地址,后者数组指针存储的内容为整型数据。对前者举例如下:

int myfun( int me )
{
   return me;
}

//函数指针数组类型定义
typedef  (int *fun[10])(int);

定义 函数指针数组变量:  fun   ptrFun;
对指针数组变量赋值:   ptrFun[0] = myfun;
通过变量间接调用函数:  (*ptrFun[0])( 168 );

出0入0汤圆

发表于 2011-6-15 23:30:51 | 显示全部楼层
最后两个 int (*a)(int);   int (*a[10])(int)
在小内存的情况下用起来很不爽。特别是函数重入的时候。
这两个在有操作系统的情况下用得比较多。

出0入0汤圆

发表于 2011-6-16 21:06:58 | 显示全部楼层
初中同学发来贺电

出0入0汤圆

发表于 2011-6-21 18:33:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-21 19:02:09 | 显示全部楼层
好几种从来没用过

出0入0汤圆

发表于 2011-6-21 23:38:54 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-22 00:17:29 | 显示全部楼层
记下

出0入0汤圆

发表于 2011-6-22 00:50:27 | 显示全部楼层
不会吧....俺全会呀.. ..看来《C语言专家编程》确实是一本很了不起的书!!

出0入4汤圆

发表于 2011-6-22 08:24:46 | 显示全部楼层
知道了,不知道怎么用也白搭,比如f这种指针怎么赋值,怎么操作,++之后指向哪里?

出0入0汤圆

发表于 2011-6-22 09:38:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-6-22 09:45:56 | 显示全部楼层
mark住,常看看...
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 15:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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