- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先,我读到:
数组
&array
&array[0]
只要“array”真的是一个数组,一切都是一样的。所以我尝试了:
int main(){
char ar[]={'a','b','c','\0'};
printf("argument: &ar %s\n",&ar);
printf("argument: &ar[1] %s\n",&ar[1]);
}
输出:
argument:&ar abc
argument:&ar[1] bc
&ar
似乎被当作第一个元素的指针,而不是指向“ar”的指针,如果我没记错的话,它本身就是一个指向第一个元素的指针。
因为这不应该是 &(指向字符的指针) 的处理方式,我尝试过:
char a='s';
char *pa=&a;
printf("argument: &pa %c\n",&pa);
%c
的输出甚至不是一个字符。也不应该是指向数组第一个元素的指针的处理方式。我试过:
char *pa=&ar[0];
char **ppa= &pa;
printf("argument: &pa %s\n", ppa);
%s
的输出毫不奇怪,毫无意义;但为什么 &ar
不是胡说八道?因为如果 ar
是一个指针,那么 &ar
不应该像 ppa
一样是一个指向指针的指针吗?
我的问题:
最佳答案
Seems that
&ar
is taken as a pointer to the first element instead of a pointer to "ar", which itself is a pointer to the pointer of the first element if I am not mistaken.
你错了。 &ar
是指向数组 ar
的指针, 但数组 ar
不是任何类型的指针(它是一个数组),所以 &ar
不是指向指针的指针。
数组是连续的对象序列 - 在 ar
的情况下, 它是一组连续的 4 char
秒。 &ar
是一个指针指向这组 4 个字符,这必然意味着它指向与 &ar[0]
相同的位置, 指向第一个 char
的指针在那个集合中。不过它有不同的类型:&ar
类型为 char (*)[4]
这意味着“指向 4 个字符的数组的指针”和 &ar[0]
类型为 char *
,意思是“指向字符的指针”。
混淆的产生是因为在几乎所有的表达式中,ar
计算结果为指向数组第一个元素的指针(异常(exception)情况是它是一元 &
运算符或 sizeof
运算符的操作数)。这并不意味着 ar
是虽然是一个指针 - 它不是 - 只是在大多数情况下它计算为一个指针值。
关于c - 关于 c 中的表达式 "&anArray",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11552960/
我想做的是让 JTextPane 在 JPanel 中占用尽可能多的空间。对于我使用的 UpdateInfoPanel: public class UpdateInfoPanel extends JP
我在 JPanel 中有一个 JTextArea,我想将其与 JScrollPane 一起使用。我正在使用 GridBagLayout。当我运行它时,框架似乎为 JScrollPane 腾出了空间,但
我想在 xcode 中实现以下功能。 我有一个 View Controller 。在这个 UIViewController 中,我有一个 UITabBar。它们下面是一个 UIView。将 UITab
有谁知道Firebird 2.5有没有类似于SQL中“STUFF”函数的功能? 我有一个包含父用户记录的表,另一个表包含与父相关的子用户记录。我希望能够提取用户拥有的“ROLES”的逗号分隔字符串,而
我想使用 JSON 作为 mirth channel 的输入和输出,例如详细信息保存在数据库中或创建 HL7 消息。 简而言之,输入为 JSON 解析它并输出为任何格式。 最佳答案 var objec
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩
我有一个以前可能被问过的问题,但我很难找到正确的描述。我希望有人能帮助我。 在下面的代码中,我设置了varprice,我想添加javascript变量accu_id以通过rails在我的数据库中查找记
我有一个简单的 SVG 文件,在 Firefox 中可以正常查看 - 它的一些包装文本使用 foreignObject 包含一些 HTML - 文本包装在 div 中:
所以我正在为学校编写一个 Ruby 程序,如果某个值是 1 或 3,则将 bool 值更改为 true,如果是 0 或 2,则更改为 false。由于我有 Java 背景,所以我认为这段代码应该有效:
我做了什么: 我在这些账户之间创建了 VPC 对等连接 互联网网关也连接到每个 VPC 还配置了路由表(以允许来自双方的流量) 情况1: 当这两个 VPC 在同一个账户中时,我成功测试了从另一个 La
我有一个名为 contacts 的表: user_id contact_id 10294 10295 10294 10293 10293 10294 102
我正在使用 Magento 中的新模板。为避免重复代码,我想为每个产品预览使用相同的子模板。 特别是我做了这样一个展示: $products = Mage::getModel('catalog/pro
“for”是否总是检查协议(protocol)中定义的每个函数中第一个参数的类型? 编辑(改写): 当协议(protocol)方法只有一个参数时,根据该单个参数的类型(直接或任意)找到实现。当协议(p
我想从我的 PHP 代码中调用 JavaScript 函数。我通过使用以下方法实现了这一点: echo ' drawChart($id); '; 这工作正常,但我想从我的 PHP 代码中获取数据,我使
这个问题已经有答案了: Event binding on dynamically created elements? (23 个回答) 已关闭 5 年前。 我有一个动态表单,我想在其中附加一些其他 h
我正在尝试找到一种解决方案,以在 componentDidMount 中的映射项上使用 setState。 我正在使用 GraphQL连同 Gatsby返回许多 data 项目,但要求在特定的 pat
我在 ScrollView 中有一个 View 。只要用户按住该 View ,我想每 80 毫秒调用一次方法。这是我已经实现的: final Runnable vibrate = new Runnab
我用 jni 开发了一个 android 应用程序。我在 GetStringUTFChars 的 dvmDecodeIndirectRef 中得到了一个 dvmabort。我只中止了一次。 为什么会这
当我到达我的 Activity 时,我调用 FragmentPagerAdapter 来处理我的不同选项卡。在我的一个选项卡中,我想显示一个 RecyclerView,但他从未出现过,有了断点,我看到
当我按下 Activity 中的按钮时,会弹出一个 DialogFragment。在对话框 fragment 中,有一个看起来像普通 ListView 的 RecyclerView。 我想要的行为是当
我是一名优秀的程序员,十分优秀!