欢迎来到天天文库
浏览记录
ID:51967725
大小:468.00 KB
页数:32页
时间:2020-03-26
《指针问题集锦.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、指针问题集锦卢佩新目录指针空指针(null)数组与指针引言指针在使用过程中经常会有很多问题对常见的指针问题进行一个分析目录指针空指针(null)数组与指针指针我想声明一个指针,并为它分配一些空间,但却不行。这些代码有什么问题?char*p;*p=malloc(10);*p++是自增p还是p所指向的变量?我有一个char*型指针正巧指向一些int型变量,我想跳过它们。为什么如下代码不行?((int*)p)++;我有一个函数,它应该接受并初始化一个指针:voidf(int*ip){staticintdummy=5;
2、ip=&dummy;}但当我如下调用时:int*ip;f(ip);调用者的指针却没有任何变化。我能否用void**指针作为参数,使函数按引用接受一般指针?我有一个函数externintf(int*);它接受指向int型的指针。我怎样用引用方式传入一个常数?下面这样的调用f(&5);似乎不行。C有“按引用传递”吗?我怎样把一个int变量转换为char*型?我试了类型转换,但是不行。目录指针空指针(null)数组与指针空指针(null)怎样在程序里获得一个空指针?用缩写的指针比较”if(p)”检查空指针是否可靠?如
3、果空指针的内部表达式不是0会怎样?NULL是什么?它是怎么定义的?在使用非全零作为空指针内部表达的机器上,NULL是如何定义的?如果NULL和0作为空指针常数是等价的,那我到底该用哪一个呢?这有点奇怪了。NULL可以确保是0,但空(null)指针却不一定?目录指针空指针(null)数组与指针数组与指针我在一个源文件中定义了chara[6];在另一个中声明了externchar*a。为什么不行?可是我听说chara[]和char*a是一样的。那么,在C语言中,“指针和数组等价”到底是什么意思?那么为什么作为函数形
4、参的数组和指针声明可以互换呢?现实的讲,数组和指针的区别是什么?我遇到一些“搞笑“代码,包含5[“abcde”]这样的”表达式“。这为什么是合法的C表达式呢?既然数组引用会蜕化为指针,如果arr是数组,那么arr和&arr又有什么区别呢?我如何声明一个数组指针?我如何在运行期设定数组的大小?我怎样才能避免固定大小的数组?我该如何动态分配多维数组?有个灵巧的窍门:如果我这样写intrealarray[10];int*array=&realarray[-1];我就可以把”array”当作下标从1开始的数组。当我向一
5、个接受指针的指针的函数传入一个二维数组的时候,编译器报错了。intarray[10][10];f(array);
此文档下载收益归作者所有