正文
c语言函数二级指针做参数 c++二级指针
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
C语言中,为什么通过函数为指针变量分配内存,形参一定要是二级指针?
我感觉没有必要用二级指针,我们的目的主要是为了让主函数中的指针的地址指向一个空内存。我们完全可以通过传递这个指针的地址到子函数中,然后给这个指针的地址分配内存就可以了。例如下面这个程序就是正确的。根本没有必要使用到二级指针呀。
C语言中为什么函数形参中二级指针和一级指针指输出的结果一样
兄弟c语言函数二级指针做参数,那个不是一级指针c语言函数二级指针做参数,那是指针数组
指针数组作为函数形参时会自动转换为指针的指针c语言函数二级指针做参数,也就是你说的二级指针
char **p=book;从这一行也能证明c语言函数二级指针做参数我说的,自动转换
特别注意:它只会转换数组的最内层(我有点分不清内外)
int arr[2][6];
int (*aa)[6] = arr;//对
//int *aa1[6] = arr;//错
//int (*aa2)[2] = arr;//错
//int (*aa3)[] = arr;//错
//int *aa4 = arr;//错
//int **aa5 = arr; //错
二重指针做参数
3楼的c语言函数二级指针做参数你不懂别乱说c语言函数二级指针做参数,虽然你这样编译和运行都是对的,但是却是非常愚蠢的。
int * ptr = (int *)malloc(sizeof(int))
malloc里面是需要分配的内存大小,你给一个int型的变量的指针,分配的当然是sizeof(int)
int **是 int *型变量的指针,分配的当然是sizeof(int *)大小的内存
当然,运行正确是因为sizeof(int **)和sizeof(int *)是一样的,都是指针,大小都是4
希望对你有帮助
为什么C语言中的二级指针作为函数形参的时候与C++中的引用功能一样?
所谓的功能一样是说都可以改变实参指针的值,引用本来就是指针的特殊应用,而写法又比指针的简洁。
C++中同样还可以用二级指针,不过写起来处处都是 形如 (*p) 这样的代码看起来不大美观,而且很容易漏写*号而出错
每天签到要答一题,无聊灌个水了
关于c语言函数二级指针做参数和c++二级指针的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。