#include<string.h>
#include<stdio.h>
int main()
{
char* charPtr="see me";
printf("%s\n", charPtr);
printf("%d", charPtr);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不明白这句话:char*charPtr ="看见我";
如何分配内存?
是否分配了7个字节的内存,并将指针分配给第一个字节?和
我知道sizeof(char*)是4字节,这里有什么关系,它对内存分配有什么影响?
有人请帮帮我.谢谢......
package polymordemo1;
class animal{
public void getanimal(animal anim) {
anim.ganim();
}
private void ganim() {
System.out.println("this is the animal");
}
}
class cat extends animal{
public void ganim() {
System.out.println("I am cat");
}
}
class bat extends animal{
public void ganim() {
System.out.println("I am bat");
}
}
public class PolymorDemo1 {
public static void main(String[] args) {
animal a=new animal();
cat c=new cat();
bat b=new bat();
a.getanimal(c);
a.getanimal(b);
}
}
Run Code Online (Sandbox Code Playgroud)
我是Java的新手,我正在研究多态性.
此代码的输出结果为:
这是动物
这是动物.
事实上我期待这个输出:
这是猫
这是蝙蝠
什么似乎是代码中的错误.
#include<stdio.h>
#include<stdlib.h>
#define d 10+10
int main()
{
printf("%d",d*d);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我是宏的概念的新手.我发现上面程序的输出是120.它背后的逻辑是什么?
谢谢.
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
int main()
{
int a[]={0,1,2,3};
int *r[]={NULL};
for(int i=0;i<4;i++)
{
r[i]=&a[i];
cout << &a[i] << endl;
cout << a[i]<<endl;
}
for(int i=0;i<4;i++)
{
cout << r[i] << endl;
cout << *r[i] << endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我最近开始研究指针数组.有人可以帮助我找出上述程序中的错误..
我在Windows和Linux平台上运行时附加了结果的屏幕截图.
在Windows上,*r []和a []的地址匹配,但值仍然不匹配.
在linux上,它有时会说"BUS ERROR",有时会说"Segmentation fault".
如果有人解释"BUS ERROR"的含义会更好吗?为什么要这个计划.

我创建了一个宏 #define ll long long int来避免打字的痛苦.
现在我有一些像这样的代码.
ll size = 2;
ll *arr = new ll[size];
memset(arr,0,sizeof(arr));
Run Code Online (Sandbox Code Playgroud)
当我试图运行这个.
我看到arr的值为4294967296 420906795007而不是0 0
memset如何工作?