打印
[疑难问答]

C语言使用二维指针编写程序接口

[复制链接]
2258|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
albertaabbot|  楼主 | 2024-2-18 20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用二维指针编写接口可以避免有些类型的return出错的问题

#include <stdio.h>

void test(char **string)
{
        *string = "hello world";
}
int main()
{
        char *str = NULL;
        test(&str);
        printf("str=%s\n",str);

        getchar();
        return 0;
}
结果:

具体分析如下图:

过程:
1.定义一个字符串指针str,str本身的地址是100,值为0(即NULL,一般的编译器NULL的地址是0)。
2.取str的地址100传给string,此时string的值是100,地址为200
3.这里假设“hello world”字符串的地址是300,接下来就是改变一级指针指向的内容的地址,由0变成300

使用特权

评论回复
沙发
pl202| | 2024-3-4 14:51 | 只看该作者
在C语言中,二维指针是一个指向指针的指针,它可以用来表示二维数组或者动态分配的二维数据结构。

使用特权

评论回复
板凳
chenci2013| | 2024-3-5 21:18 | 只看该作者
在C语言中,二维数组的名字在表达式中会被隐式地转换为其首地址(即指向第一行的指针),所以在传递给函数时可以直接传二维数组的名字,无需显式解引用。

使用特权

评论回复
地板
updownq| | 2024-3-10 15:52 | 只看该作者
在使用二维指针时,需要动态分配内存来存储二维数组的元素。

使用特权

评论回复
5
usysm| | 2024-3-11 17:38 | 只看该作者
二维指针是指向指针的指针,可以用来表示二维数组。

使用特权

评论回复
6
jtracy3| | 2024-3-11 22:48 | 只看该作者
使用二维指针时需要注意内存管理,避免内存泄漏和越界访问等问题。

使用特权

评论回复
7
sheflynn| | 2024-3-15 17:09 | 只看该作者
可以使用二维指针来处理多维数组。对于二维数组,我们可以将其看作是一个指向一维数组的指针。

使用特权

评论回复
8
pixhw| | 2024-3-23 19:07 | 只看该作者
在C语言中,二维指针可以用来指向多维数组,它实际上指向数组的第一个元素,该元素本身是一个指向数组的指针。这样的接口设计可以提供对多维数组灵活的操作。

使用特权

评论回复
9
uiint| | 2024-4-15 21:39 | 只看该作者
二维指针的使用使得对多维数组的操作更加直观和方便,特别是在需要显式地处理数组的行和列时。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

1267

帖子

1

粉丝