什么是32位或64位机器?
这是处理器架构...... 32位机器可以在64位机器上同时读取和写入32位数据....
什么是32位机器可以访问的最大内存?
它是2^32=4Gb(4Gigabit = 0.5 GigaByte)
这意味着4Gb内存?
如果我对64位机器采用相同的方法,那么我可以使用16ExbiBytes的内存..这可能吗?
我的观念是对的吗?
可能重复:
函数指针有什么意义?
我试图了解在实际场景中使用函数指针的位置.也有人可以给我一个实际的例子,我们必须将函数本身作为参数传递给另一个函数.
在我正在阅读的书中(Herbert Schildt的C++ Complete Reference),它表示没有使用分配的数组new可以有一个初始化器.
我不能使用new?初始化动态分配的数组?如果不是什么原因呢?
在复制构造函数中,为什么参数需要具有与之关联的默认值?如果没有与它们关联的默认值并且构造函数中提供了多个参数,会发生什么?
例如:
X(const X& copy_from_me, int = 10);
Run Code Online (Sandbox Code Playgroud)
有一个int的默认值,但是:
X(const X& copy_from_me, int);
Run Code Online (Sandbox Code Playgroud)
才不是.在第二种情况下会发生什么?
根据我所指的文本(Herbert Schildt 的完整参考文献),派生类不继承朋友函数,而友元函数可能没有存储类说明符.也就是说,它们可能不会被声明为静态或外部.为什么?
在c ++中,继承是在运行时还是在编译时发生的?
例子?
我知道这个问题可能被标记为malloc和calloc之间的区别重复,但我还是想问一下.
我知道calloc启动了内存块,这里我的问题并不是关注那个部分.
我的问题是
malloc的定义说它分配了一个指定大小的内存块.
而calloc说它分配了多个内存块,每块内存大小相同.
这个分配一块内存和多块内存是两者之间真正的区别吗?
因为我觉得我们可以使用malloc做同样的事情.
例如 :
int *ptr;
ptr=(int *) malloc(100 * (sizeof(int)));
Run Code Online (Sandbox Code Playgroud)
和
int *ptr;
ptr=(int *) calloc(100,sizeof(int));
Run Code Online (Sandbox Code Playgroud)
最终将分配int所需内存的100倍.
嗨我有一个简单的代码打印charater数组的三个字符,如下所示
void main()
{
char str[]={65,66,67};
printf("%.3s",str);
}
Run Code Online (Sandbox Code Playgroud)
这给出了输出ABC,但我想知道因为这不是一个字符串意味着它不是空终止然后如何%s工作并给出正确的结果?
下面是我编写的一个小程序,用于计算从键盘输入空格,换行符或制表符的次数.
但是,我不知道出了什么问题.无论输入多少空格或换行符,我的计数始终为零.
#include <stdio.h>
/*program to count blanks ,tabs and newlines */
int main()
{
int cnt_space=0,cnt_newline=0,cnt_tab=0;
int c;
while(c=getchar()!=EOF)
{
if(c==' ')
{
++cnt_space;
}
if(c=='\n')
{
++cnt_newline;
}
if(c=='\t')
{
++cnt_tab;
}
}
printf("spaces=%d\nnewlines=%d",cnt_space,cnt_newline);
return 0;
}
Run Code Online (Sandbox Code Playgroud) c++ ×5
c ×4
32bit-64bit ×1
arrays ×1
calloc ×1
compile-time ×1
friend ×1
inheritance ×1
malloc ×1
printf ×1
ram ×1
runtime ×1