《高质量程序设计(第二版)》第八章中关于指针的问题
2008-01-11 22:34
295 查看
《高质量程序设计(第二版)》第八章中关于指针的问题
问题一:P165 指针传递
void Allocate(char* &p, int size)
{
p=(char*)malloc(size);
}
void Test(void)
{
char* str=NULL;
Allocate(str,100);
strcpy(str, "Hello World!");
printf(str);
free(str);
}
char* &p 这样使用的含义是定义一个 char*类型的指针p,作为外部传入的char*类型指针的别名?正因为如此,及时从函数中退出,因为p就是str,所以对str 的操作也是正常的?是这样理解么?
到底怎样区分 引用的& 和 取地址的& 呢?
问题二:P174 函数指针
typedef int (*FuncPtr)(const char*);
FuncPtr fp_1=strlen;
FuncPtr fp_2=puts;
double (*fp_3)(double)=sqrt;
第一句是否可应该怎么理解:
1、将 int* 类型的指针用FuncPtr来表示,后面的(const char*)是函数参数
2、将 int 类型用*FuncPtr来表示,后面的(const char*)是函数参数
函数名不是一个指针么,但是一个指针刚好占用4字节算是一个int数值么?函数名到底应该理解成 int 还是 int*?
问题一:P165 指针传递
void Allocate(char* &p, int size)
{
p=(char*)malloc(size);
}
void Test(void)
{
char* str=NULL;
Allocate(str,100);
strcpy(str, "Hello World!");
printf(str);
free(str);
}
char* &p 这样使用的含义是定义一个 char*类型的指针p,作为外部传入的char*类型指针的别名?正因为如此,及时从函数中退出,因为p就是str,所以对str 的操作也是正常的?是这样理解么?
到底怎样区分 引用的& 和 取地址的& 呢?
问题二:P174 函数指针
typedef int (*FuncPtr)(const char*);
FuncPtr fp_1=strlen;
FuncPtr fp_2=puts;
double (*fp_3)(double)=sqrt;
第一句是否可应该怎么理解:
1、将 int* 类型的指针用FuncPtr来表示,后面的(const char*)是函数参数
2、将 int 类型用*FuncPtr来表示,后面的(const char*)是函数参数
函数名不是一个指针么,但是一个指针刚好占用4字节算是一个int数值么?函数名到底应该理解成 int 还是 int*?
相关文章推荐
- 关于C语言的文件型指针和移位操作中的一些有趣问题的探讨
- 关于用指针方式访问二维数组的问题
- 关于String和StringBuffer的理解问题:指针、变量的声明、变量的值的变化
- 关于const常量与指针赋值的问题
- c中关于指针的声明和定义的一些问题
- 关于解决java读取excel文件遇空行抛空指针的问题 !
- 关于空指针问题思考
- 关于Android LayoutInflater详解及空指针问题
- 老问题了,关于指针传值的问题
- 关于数组和指针作为参数时遇到的问题
- 关于将数组地址赋给指针的问题
- <C语言>关于函数返回值是指针,取不到值的问题研究
- c中关于指针的声明和定义的一些问题
- 关于一个指针取值的问题
- 关于字符串指针初始化std::string的一个小问题
- 关于指针定义的一些问题
- 引用与指针关于变量返回值的问题4个swap
- 关于指针问题的一个笔记加牢骚
- 关于Vector中存放指针的问题
- 关于指针与类的内存分布问题(问题思考来自《程序员面试宝典》)