C语言形参指针
发布网友
发布时间:20小时前
我来回答
共2个回答
热心网友
时间:13小时前
1 这两种形式没有任何区别,定义的都是char* 类型的指针,不过有的书上建议采用*和变量相靠近的写法,这样可以避免连续声明时的错误,例如:char *ptr,a;可以明显知道一个是指针的变量一个是char类型的变量。
2 二维数组实际可以声明成指向指针的指针。这样在接受形参的时候,就可以用一个双重指针来接受。
void f(int **a) //怎么写?
{
}
int a[100][100];
f(a);
3 返回值是一个指针就可以实现了,不过返回的地址一定要是在堆空间申请的空间,或者是在静态区的空间。不要返回在函数栈中的地址,以防止在退出函数时,栈空间释放,成为幽灵内存。
char* fun(){
char* ptr ="abc";
return ptr;
}
热心网友
时间:13小时前
1.函数里void f(char* a)和void f(char *a)有什么区别啊.或者说
char* a 是C++的习惯写法,说明a是指针类型。因为C++强调类型
char *a是C的写法,强调变量本身。
2.void fun(char (*a)[100]);
(*a)[100]为指向二维数组的指针。n*100
3. int *(*fun)(参数列表);
这个函数指针返回一个int*的指针