早教吧 育儿知识 作业答案 考试题库 百科 知识分享

1.若有函数声明voidf(char**p),则使得函数调用f(var)不正确的var定义是.A.charvar[10][10];B.char*var[10];C.void*var=NULL;D.char*v=NULL,**var=&v;答案是A请详细解释一

题目详情
1. 若有函数声明void f(char ** p),则使得函数调用f(var)不正确的var定义是_______.

A.char var[10][10];

B.char *var[10];


C.void *var = NULL;

D.char *v=NULL, **var=&v;
答案是A
请详细解释一下4个选项 拜托了
▼优质解答
答案和解析
1.char var[10][10];var的类型是 char (*)[10] 类型(不理解的话需要好好看看课本)
2.char *var[10]; var数组是存放char *类型的数组,数组名var是数组var元素的首地址,所以var的
类型是char**类型
3.void * 是定义没有指针类型的指针,在c99中举个例子int *p = malloc(sizeof(int)); 可以不写强制类型转换,因为malloc返回一个void *类型的指针,写强制类型转换是为了看起来方便,不懂再去看书
4.v是char*类型的,那么取v的地址肯定是char**类型的,所以var是char**类型的。