下面这两个例子都有8个有效数字,但第一个案例没有给出任何警告,而第二个案例确实如此,为什么?
float f1 = 11111111;
float f2 = 99999999;
Run Code Online (Sandbox Code Playgroud)
浮点数据类型是否有7或8个有效数字?
当我开始学习没有C的C++时,我从不打扰寻找printf.现在我想在某些项目中使用格式化输出.所以我正在寻找一些可以解释使用printf和IO流之间差异的参考资料.
我怀疑的是:
float f = 1.5;
printf("%d", f);
Run Code Online (Sandbox Code Playgroud)
为什么打印为零?FWIK它应该重新解释float为int是真的吗?
在我的班上,如果我想指向一个班级成员,
struct S
{
static int get();
int do_something();
int x;
};
Run Code Online (Sandbox Code Playgroud)
我做,
int (*p)() = S::get;
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不适用于非静态成员
int (*p)() = S::do_something; // error
Run Code Online (Sandbox Code Playgroud)
因为,静态成员函数是一个普通的函数,从下面我引用的引用中可以看出非静态成员函数也是一个普通函数,为什么它不起作用呢?这是什么意思?
(9.2/10)[注意:非静态成员函数的类型是普通函数类型,非静态数据成员的类型是普通对象类型.没有特殊的成员函数类型或数据成员类型.]
当我包含头文件时,让我们说,
//myheader.h
#ifndef MY_HEADER_H
#define MY_HEADER_H
//....
#endif
Run Code Online (Sandbox Code Playgroud)
成,
//mycpp1.cpp
#include "myheader.h"
Run Code Online (Sandbox Code Playgroud)
我被告知的是,当mycpp1.cpp包含myheader.h时,MY_HEADER_H会被定义,因此任何再次包含它的尝试都将导致错误.
现在,如果我想将它包含在mycpp2.cpp中.
//mpcpp2.cpp
#include "myheader.h"
Run Code Online (Sandbox Code Playgroud)
是否会被包含在内,或者它是否在第一次包含时使用相同的声明?
首先,我了解到:
看到以下Java代码后:
public class MyClassTest {
public static void main(String[] args) {
// String to CharSequence?
CharSequence c = "Java";
System.out.println(c);
System.out.println(c.length());
}
}
Run Code Online (Sandbox Code Playgroud)
当我得知这CharSequence是一个接口时,我很困惑
如何使用像对象这样的接口并初始化它?
为什么CharSequence实现一个length函数,如果它的接口?
什么是C++中的init-declarator和声明符之间的区别?init-declarator可能出现在init-declarator-list中.例:
int x, y, z;
Run Code Online (Sandbox Code Playgroud)
要么
int x;
int y;
int z;
Run Code Online (Sandbox Code Playgroud)
其中x,y,z可能是init-declarators或我应该说声明者?
我可以调用成员模板,模板模板成员函数吗?或者我怎么知道将其称为成员模板以及它是如何理解的?
例如:
对于案例A:我有一个类,如果我使其成员函数成为模板成员函数,我会称之为成员模板吗?
对于案例B:我有一个模板类,如果我将其模板成员函数作为模板,我会将其称为成员模板,还是可以将其称为模板模板成员函数?
为了清楚事实,我想问一下
int i = 1;
int *p = &i;
i = *p;
Run Code Online (Sandbox Code Playgroud)
你怎么称呼p上的运营商*?被称为解除引用运算符与第3行相同?
我们知道的标量类型有:int, char, float,等等。但是指针也是标量类型。它包含指向类类型的指针还是仅包含标量类型?
为什么这是一个错误?
int a = 0;
a = 42;
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
我可以找到这种行为的可能匹配:
(3.4.1/4)在全局范围内使用的名称,在任何函数,类或用户声明的命名空间之外,应在全局范围内使用之前声明.
这可能是标准的缺陷吗?
在以下情况中,
int i = 0;
int j = 42;
i = j++;
Run Code Online (Sandbox Code Playgroud)
我知道++是posfix运算符,所以,是j一个posfix表达式还是应该说j++是posfix表达式?