int test[3] = {1,2,3};
cout<<test[3]<<endl;
// this will get a error
但
int test[3] = {1,2,3};
int (*A)[3];
A = &test;
cout<<test[3]<<(*A)[3]<<endl;
// this will print -858993460 withiout any errors
有人能告诉我为什么吗?我真的对此感到困惑。
在第一种情况下,为什么它不是越界错误,而是一个未定义的错误?为什么第二种情况不会
我有以下代码--它所做的一切--它获取文本框中的值,对字符串执行regex,然后计算字符串值中有多少个星号:
var textBoxValue = $(textbox).val();
function countHowManyWildCards(stringToSearch) {
var regex = new RegExp(/\*/g);
var count = stringToSearch.toString().match(regex).length;
return count;
}
if (countHowManyWildCards(textBoxValu
我有一个简单的对象,有两个字段name和age,最初它们被定义为未定义的,稍后在代码中将赋值 const s={
name:undefined,
age:undefined
}
s.name="Test" //error 当我尝试为我的属性赋值时,它会出现typescript错误 Type '"Test"' is not assignable to type 'undefined'. 有人能解释为什么我在typescript中遇到这个错误以及如何修复它吗?
我刚刚观察到了以下奇怪的行为:
删除未定义的变量
> delete a
true
> delete a[0]
ReferenceError: a is not defined
> delete a.something
ReferenceError: a is not defined
> delete a.something[0]
ReferenceError: a is not defined
删除不存在的字段的子字段
> a = {}
{}
> delete a.foo
true
> delete a.bar.something
TypeError:
引用以前未定义的变量将导致错误:The variable X is unbound (SBCL的错误消息)。但是,引用KEYWORD包中以前未定义的变量不会导致任何错误。例如,KEYWORD:XYZ神奇地有一个值:XYZ,即使用户以前没有定义和导出变量。这一切为什么要发生?怎么可能在动态中自动创建变量?
我对C++有些陌生,我正试图理解语法及其行为。特别是,在进行了相当多的搜索和研究之后,我无法找到为什么下面的代码无法编译:
class base {
public:
base (const int);
};
class child: base {
public:
child (const int);
};
child::child(const int num) : base(num) {}
但这将:
class base {
public:
base (const int);
};
class child : base {
public:
child (c