在许多教程中,关于动态内存的第一个代码示例开始于:
int * pointer;
pointer = new int; // version 1
//OR
pointer = new int [20]; // version 2
Run Code Online (Sandbox Code Playgroud)
他们总是着手解释第二个版本是如何工作的,但完全避免谈论第一个版本.
我想知道的是,pointer = new int创造了什么?我该怎么办?这是什么意思?每个教程都没有失败,将避免完全讨论第一个版本.所有我发现的(通过搞乱)都是这样的:
#include <iostream>
using namespace std;
int main()
{
int * pointer;
pointer = new int;
pointer[2] = 1932; // pointer [2] exists? and i can assign to it?!
cout << pointer[2] << endl; // ... and access it successfully?!
};
Run Code Online (Sandbox Code Playgroud)
我可以下标的事实pointer告诉我到目前为止pointer = new int隐含地创建了一个数组.但如果是这样,那么它的大小是多少?
如果有人能帮我解决这一切,我将不胜感激......
首先,我使用Android兼容性库V4 rev.3为我的1.6(甜甜圈)
首次创建ListFragment时,它会显示一个不确定的进度指示器,直到您使用setListAdabpter().根据ListFragment.onCreateView的文档,如果我想使用自定义布局:
如果要使用自己的自定义内容覆盖此方法,请考虑在布局文件中包含标准布局{@link android.R.layout#list_content},以便继续保留ListFragment的所有标准行为.特别是,这是目前显示内置不确定进度状态的唯一方法.
问题是,当我进入我的布局文件并尝试:
<include layout="@android:layout/list_content" ...>它(eclipse)告诉我
资源不公开.(在'layout'中,值为'@android:layout/list_content').
我认为这意味着list_content.xml我的V4源代码中不存在.这是正确的,因为它根据API v11中出现的文档.
我只是假设它将存在于兼容性库源中,不知道它是否...
我能看到的唯一其他解决方案是挖掘android的API V11源代码并进行复制和粘贴list_content.xml.但是现在我想避免这个hackery.这是唯一的解决方案吗?
除了类型转换之外,Java中括号的作用是什么.
我已经看到它们在许多令人困惑的情况下使用,这里是Java教程中的一个:
//convert strings to numbers
float a = (Float.valueOf(args[0]) ).floatValue();
float b = (Float.valueOf(args[1]) ).floatValue();
Run Code Online (Sandbox Code Playgroud)
我只知道括号,调用和分组表达式的两种用法.我在网上搜索过但我找不到更多信息.
在上面的例子中,我知道Float.valueOF(arg)返回一个对象.括号化对象有什么影响?
为什么会,
#include <iostream>
using namespace std;
int afunction () {return 0;};
int anotherfunction () {return 0;};
int main ()
{
cout << &afunction << endl;
}
Run Code Online (Sandbox Code Playgroud)
给这个,
1
以下代码应该有效
import gi
import gi.repository
Run Code Online (Sandbox Code Playgroud)
这适用于python shell.如果我将文件保存为脚本然后在终端中启动它,它也可以工作.但在aptana3我得到这个:
import gi.repository
ImportError: No module named repository
Run Code Online (Sandbox Code Playgroud)
我认为这个错误报告可能有一个线索