小编Gre*_*ner的帖子

为什么要使用#define而不是变量

什么是点#define在C++?我只看到了用它代替"幻数"的例子,但我没有看到只是将该值赋予变量的重点.

c++ c-preprocessor

52
推荐指数
5
解决办法
9万
查看次数

在"@"符号之前解析文本的电子邮件

我正在尝试编写一个函数,它将用户的电子邮件作为参数并返回电子邮件的第一部分,但不包括"@"符号.问题是我的功能很糟糕,这个功能有问题,但我不确定它是什么.当我尝试将该函数写入页面以查看它是否正常工作时,它会一直显示未定义.

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)

我确定还有其他方法可以做到,但我需要大致遵循这种格式使用函数检查"@"之前的内容并使用方法找出它.

javascript

10
推荐指数
3
解决办法
6781
查看次数

为什么我不能使用Type.InvokeMember检索type out或ref参数的值?

一个很长的标题,但我希望它具体.标题确实是个问题.即使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# reflection reference-parameters

6
推荐指数
3
解决办法
2852
查看次数

具有空终止符的指针 - 数组交互

我只是在处理数组时尝试使用指针,而且我对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,否则.这是正确的推理吗?有人可以解释我是否在数组和指针之间得到这种关系?

c++ arrays pointers pointer-arithmetic

3
推荐指数
1
解决办法
342
查看次数