据说看懂这道题,就学会指针了......分享给大家看看
指针的使用一直都是初学者的第一道坎儿,绕来绕去的。。。以下这道题,据说琢磨透了,就基本不怕指针了..~~用变量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个整型数的数组 An array of 10 integers
e) int *a; // 一个有10个指针的数组 An array of 10 pointers to integers
f) int (*a); // 一个指向有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)(int); // 一个有10个指针的数组,指向一个整形函数并有一个整形参数 An array of 10 pointers to functions that take an integer argument and return an integer 面试的时候被考过好几次了,就是这几题,所以要是找工作的话记下吧,呵呵。 f,g,h 不是很懂 ./emotion/em022.gif有几个不是很明白,但估计没机会用上 MARK! 貌似只有最后一个不懂,是不是可以及格了? 其实这是些绕口令 呵呵 mark 这个很好啊~
"pointers on c" 上面的? 回复【8楼】librae8226
-----------------------------------------------------------------------
是面试的题库,面试官就喜欢拿这些变态的题来考人... 绕进去了。 绕一遍,发现,还可以! h) int (*a)(int); // 一个有10个指针的数组
中文 翻译的有问题吧 jh (⊙o⊙) (⊙o⊙) 感觉还行
比自己在一年前强点 C不太熟,学习了 对于单片机开发,这些指针大部分不常用,我认为不是必需的。我一般是通过数组的方法代用。
但作为专业软件开发,还是有必要掌握。如大屏幕液晶显示,数据量非常大,用高级指针对数据引用,程序可以做得最简捷。对程序开发者来讲,指针是个非常好的变量。
我认为,要不要使用指针变量,其效果取决于程序数据量的大小。 回复【18楼】kent
-----------------------------------------------------------------------
感觉除了最后一个不太常用,前面的还是很常用的,这个题不变态啊,是基本的题! MARK 感觉同19楼。 看了 MARK 感觉同19楼。 mark 指针 mark mark 看起来似懂非懂···· jh mark 嗯,确实不错。几个题很有意思。 这个是基础题了,关键是要做到会用才是王道. 对指针不熟悉 这里看懂了还要看懂了它编译后的汇编是怎么实现的才算看懂了、 估计最后一个很多人都没遇到过、 回复【楼主位】Ian11122840 船儿舟
-----------------------------------------------------------------------
mark! 学习了 从来不记,用的时候查,所以我当初面试没过 mark b) int *a;相当于int (*a);
括号内含义:a是指针
括号外含义:指针指向类型是int
c) int **a; 相当于:int *(*a);
括号内含义:a是指针
括号外含义:指针指向类型是int *
e) int *a; 相当于:int (*a);
括号内含义:a是指针数组
括号外含义:指针指向类型是int
f) int (*a);
括号内含义:a是指针
括号外含义:指针指向类型是int
g) int (*a)(int);
括号内含义:a是指针数
括号外含义:指针指向类型是int()(),//没有参数,返回int的函数
h) int (*a)(int);
括号内含义:a是指针数数组
括号外含义:指针指向类型是int()(),//没有参数,返回int的函数 mark mark指针 40楼g和h应该是int参数吧返回也是int mark mark 兄弟这几个指针应用算是最基础的了还没给你出++*p呢。 哈哈 mark 指针 mark 指针 mark 学习了 jilu,回头细看 f和 h不懂
学习了!~~~~ mark 指针 我全会哦 貌似看过了。。。。 认真的mark 我就会前两个 看起来似懂非懂···· mark 好久都没用过指针了 看下<< C语言深度剖析>> ,都有讲到的,很不错的一本书! mark mark 不错 mark 该好好学习指针了 长见识了 最后一个似懂非懂... mark . f,h不懂,回家看书去 mark留着学习 留着了 感谢分享! 看懂了 g) int (*a)(int variables);
h) int (*a)(int variables);
工作了做的是最下层的工作可是一直在自学C,所以以上的题目感觉很是简单! haohaojio MARK 指针 学习了 呵呵,大概看了一下,主要是要找清楚指针到底指向谁,有点像绕口令呵呵 不错 先回帖, 再看 看过了, 再来盖楼 呵呵 有些懂有些则不明白。学习了! make 《C语言程序设计》P255 表10.2 再来看看... 不错,有几个还不太明白 相信很多人对(int *a)( int ) 中 a 指针的定义感到困惑,我初看此题也想了很久,其实该指针的定义跟 int *a本质上是相同的,我认为编译器在语法处理上是一致的,只是前者数组指针存储的内容为函数入口地址,后者数组指针存储的内容为整型数据。对前者举例如下:
int myfun( int me )
{
return me;
}
//函数指针数组类型定义
typedef(int *fun)(int);
定义 函数指针数组变量:fun ptrFun;
对指针数组变量赋值: ptrFun = myfun;
通过变量间接调用函数:(*ptrFun)( 168 ); 最后两个 int (*a)(int); int (*a)(int)
在小内存的情况下用起来很不爽。特别是函数重入的时候。
这两个在有操作系统的情况下用得比较多。 初中同学发来贺电 mark 好几种从来没用过 mark 记下 不会吧....俺全会呀.../emotion/em011.gif ..看来《C语言专家编程》确实是一本很了不起的书!! 知道了,不知道怎么用也白搭,比如f这种指针怎么赋值,怎么操作,++之后指向哪里? mark mark住,常看看...
页:
[1]
2