我再一次使用C++,并注意到在类成员方法内或main()
函数内部声明为指针时数组初始化的奇怪行为.
int * p = new int[20];
Run Code Online (Sandbox Code Playgroud)
我期望发生的是,指针将保持未初始化的随机值,就像它们一样
int arr[20];
Run Code Online (Sandbox Code Playgroud)
但相反,他们都归零了.到底是怎么回事?
我已经创建了一个Person对象,它实现了Serializable接口,它在构造函数中包含fname,lname,phone,address,并且我将这个类的对象存储在".dat"文件中,我希望显示这些联系人在GUI上,所以当我尝试将人物转换为字符串时,它会给出ClassCastException,如果有人会帮助我,我将感激不尽.
这是一个构造函数:
public Person(String fName, String lName, String add, String ph) {
//super();
this.fName = fName;
this.lName = lName;
this.add = add;
this.ph = ph;
}
Run Code Online (Sandbox Code Playgroud)
这是GUI类代码:
public void windowOpened(WindowEvent e) {
FileInputStream fis;
ObjectInputStream ois;
try {
fis = new FileInputStream("person.dat");
ois = new ObjectInputStream(fis);
Person p = (Person) ois.readObject();
String obj = (String) p.toString(); // giving error at this line
StringTokenizer str = new StringTokenizer(obj, " ");
textField.setText(str.nextToken());
textField_3.setText(str.nextToken());
textArea.setText(str.nextToken());
// System.out.println(p);
ois.close();
fis.close();
} catch (Exception ee) …
Run Code Online (Sandbox Code Playgroud) 我有一个奇怪的问题,简单的程序,fe
main()
{
int i=1;
std::cout << i;
}
Run Code Online (Sandbox Code Playgroud)
结果用
1%
Run Code Online (Sandbox Code Playgroud)
在屏幕上.我无法摆脱那个"%".有谁知道发生了什么?我在Arch Linux上使用g ++(GCC)4.8.0 20130502.
我的代码是这将使用递归从数组中找到最大数字,但它找不到最大的数字
#include <stdio.h>
int maximum(int ar[], int n)
{
if (n == 1) {
return ar[0];
} else {
int max = maximum(ar, n-1);
printf("Largest element : %d\n", max);
return 5; // return ar[n-1] > max ? ar[n-1] : max;
}
}
int main()
{
int array[5] = {5, 23, 28, 7, 1};
printf("Maximum element of the array is: %d", maximum(array, 5));
return 0;
}
Run Code Online (Sandbox Code Playgroud)