什么是点#define在C++?我只看到了用它代替"幻数"的例子,但我没有看到只是将该值赋予变量的重点.
我正在尝试编写一个函数,它将用户的电子邮件作为参数并返回电子邮件的第一部分,但不包括"@"符号.问题是我的功能很糟糕,这个功能有问题,但我不确定它是什么.当我尝试将该函数写入页面以查看它是否正常工作时,它会一直显示未定义.
function emailUsername(emailAddress)
{
var userName = "";
for(var index = 0; index < emailAddress.length; index++)
{
var CharCode = emailAddress.charCodeAt(index);
if(CharCode = 64)
{
break;
}
else
{
userName += emailAddress.charAt(index);
return userName;
}
}
}
var email = new String(prompt("Enter your email address: ",""));
var write = emailUsername(email);
document.write(write);
Run Code Online (Sandbox Code Playgroud)
我确定还有其他方法可以做到,但我需要大致遵循这种格式使用函数检查"@"之前的内容并使用方法找出它.
一个很长的标题,但我希望它具体.标题确实是个问题.即使InvokeMember正在调用的方法有一个out参数并且正在为该参数赋值,我也无法获取该值.这是我最初使用的代码:
string parameter = "";
int result = Convert.ToInt32(typeof(Ability).InvokeMember(selectedMove, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, new object[] { parameter }));
Run Code Online (Sandbox Code Playgroud)
我改变了这个,现在它按预期工作但我不知道为什么:
object[] args = new object[1]; //necessary to retrieve ref/out parameter
int result = Convert.ToInt32(typeof(Ability).InvokeMember(selectedMove, BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static, null, null, args));
Run Code Online (Sandbox Code Playgroud) 我只是在处理数组时尝试使用指针,而且我对C++处理数组的方式感到有些困惑.以下是我写的相关代码:
//declare a string (as a pointer)
char* szString = "Randy";
cout << "Display string using a pointer: ";
char* pszString = szString;
while (*pszString)
cout << *pszString++;
Run Code Online (Sandbox Code Playgroud)
首先,当我尝试使用cout来编写"pszString"中的内容时(没有取消引用)我有点惊讶地看到它给了我字符串.我只是假设它是因为我给指针一个字符串而不是一个变量.
真正吸引我注意的是,当我从行中删除星号时,cout << *pszString++;它打印出"Randyandyndydyy".我不确定为什么它会写入数组然后再用1个字母再写一次.我的理由是,在写入字符串后,增量运算符会立即将索引带到下一个字母,然后才能到达空终止符.我不明白为什么null终止符不会导致循环在第一次输出字符串后返回false,否则.这是正确的推理吗?有人可以解释我是否在数组和指针之间得到这种关系?