gpt4 book ai didi

c - 指向 c 中的数组的指针不起作用

转载 作者:行者123 更新时间:2023-12-02 08:34:52 26 4
gpt4 key购买 nike

char (*ptr)[10];
scanf("%s",ptr);//inputing a string

为什么这不起作用?根据我的说法,这应该可行,因为 ptr 是指向字符数组的指针。

最佳答案

指向数组的指针不是数组,您无处放置字符。

这就像没有房子有擦鞋垫,并不意味着您有地方可以接待客人。

要使上述工作正常,您应该

char ptr[10]; // This is where you have space, specifically stack space
char (*this_is_a_pointer_to_array)[10]; // This only holds space to keep an address to an array
this_is_a_pointer_to_array = &ptr;
scanf("%s",ptr);

虽然在上面的例子中你并不真的需要指向数组的指针。

指向数组的指针只保留了保存数组地址所需的空间,没有空间可以存储除地址以外的任何内容。如果你可怕地规避了类型转换机制,你可能会使用那个空间来存储一些字符而不是地址,但这违背了我 body 的每一根道德纤维,也可能违背了所有类型转换规则。

关于c - 指向 c 中的数组的指针不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22729075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com