小编Ami*_*yay的帖子

C++程序中函数的地址是什么?

由于该函数是存储在一个连续内存块中的指令集.

并且函数(入口点)的地址是函数中第一条指令的地址.(据我所知)

因此我们可以说函数的地址和函数中第一条指令的地址是相同的(在这种情况下,第一条指令是变量的初始化.).

但是下面的程序与上述内容相矛盾.

码:

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
char ** fun()
{
    static char * z = (char*)"Merry Christmas :)";
    return &z;
}
int main()
{
    char ** ptr = NULL;

    char ** (*fun_ptr)(); //declaration of pointer to the function
    fun_ptr = &fun;

    ptr = fun();

    printf("\n %s \n Address of function = [%p]", *ptr, fun_ptr);
    printf("\n Address of first variable created in fun() = [%p]", (void*)ptr);
    cout<<endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

一个输出示例是:

 Merry Christmas :) 
 Address of …
Run Code Online (Sandbox Code Playgroud)

c++ function-pointers function memory-address

32
推荐指数
6
解决办法
1万
查看次数

子阵列,子集和子序列之间的差异

我在子阵列,子序列和子集之间有点困惑

如果我有 {1,2,3,4}

然后

子序列可以是{1,2,4}OR {2,4}等.所以基本上我可以省略一些元素但保持顺序.

子阵列(比如3号子阵)

{1,2,3}
{2,3,4} 
Run Code Online (Sandbox Code Playgroud)

那么子集是什么?

我对这3个人感到有点困惑.

arrays subset subsequence

28
推荐指数
4
解决办法
1万
查看次数

为什么address-of operator('&')可以与在C++中使用寄存器存储类说明符声明的对象一起使用?

在C编程语言中,我们不允许将address-of运算符(&)与使用寄存器存储类说明符声明的变量一起使用.

它给 error: address of register variable ‘var_name’ requested

但是如果我们制作一个c ++程序并执行相同的任务(即使用&with寄存器存储变量),它不会给我们任何错误.

例如.

#include <iostream>
using namespace std;
int main()
{
    register int a;
    int * ptr;
    a = 5;
    ptr = &a;
    cout << ptr << endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出: -

0x7ffcfed93624
Run Code Online (Sandbox Code Playgroud)

那么这必须是C++的一个额外功能,但问题在于C和C++中寄存器类存储的区别.

c c++

23
推荐指数
2
解决办法
1868
查看次数

预计在python中有两个空行pep8警告

我正在使用vim编辑器作为python IDE.下面是一个简单的python程序来计算数字的平方根:

import cmath
def sqrt():
    try:
        num = int(input("Enter the number : "))
        if num >= 0:
            main(num)
        else:
            complex(num)
    except:
        print("OOPS..!!Something went wrong, try again")
        sqrt()
    return

def main(num):
    squareRoot = num**(1/2)
    print("The square Root of ", num, " is ", squareRoot)
    return

def complex(num):
    ans = cmath.sqrt(num)
    print("The Square root if ", num, " is ", ans)
    return

sqrt()
Run Code Online (Sandbox Code Playgroud)

警告是:

1-square-root.py|2 col 1 C| E302 expected 2 blank lines, found 0 [pep8]
1-square-root.py|15 col 1 C| E302 …
Run Code Online (Sandbox Code Playgroud)

python vim

22
推荐指数
1
解决办法
5万
查看次数

如何在Android中播放背景中的YouTube视频?

我是初学者,我正在开发一个Android项目,我使用Google YouTube数据API播放youtube视频.即使在用户切换到另一个应用程序或按下主页按钮后,是否可以在后台播放视频?是否可以将音频与视频分开并在后台流式传输?我不想使用网页浏览.

android youtube-data-api

8
推荐指数
1
解决办法
2579
查看次数

为什么点 (.) 在 vi​​m 编辑器的插入模式下不能正常工作?

过去几个月我在 python IDE 中使用 vim,但最近遇到了一个新问题。每当我按下 . (点)在插入模式下,光标不会移动到下一个位置,而是保持在同一位置,并且当我按下 时会发出砰砰声。(点)键。这个问题不让我正确编码。

下面是一张图片。解释问题:-

在此处输入图片说明

在这里,当我写作时turtle.,问题来了,我必须使用箭头键明确地移动一步。请告诉我是否需要上传我的 .vimrc 文件

谢谢

vi vim

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

函数递归的时间复杂度

需要帮助证明递归函数的时间复杂度。据说是 2^n。我需要证明情况确实如此。

def F(n):
    if  n == 0:
        return 0
    else:
        result = 0
        for i in range(n):
            result += F(i)
        return n*result+n`
Run Code Online (Sandbox Code Playgroud)

这是执行相同操作的另一个版本。作业说使用数组来存储值以试图降低时间复杂度,所以我所做的是

def F2(n,array):

    if n < len(array):
        answer = array[n]

    elif  n == 0:
        answer = 0
        array.append(answer)
    else:
        result = 0
        for i in range(n):
              result += F2(i,array)
        answer = n*result+n
        array.append(answer)

    return answer
Run Code Online (Sandbox Code Playgroud)

同样,我正在寻找的是如何找到两个代码片段的复杂性的解释,而不仅仅是知道答案。非常感谢所有和任何帮助。

PS:出于某种原因,我无法让“def F2”留在代码块中......对此感到抱歉

python algorithm recursion dynamic-programming time-complexity

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

在 python 中, print("backslash \") 会产生错误,但 print("backslash \ ") 不会产生错误

在 python 中print("backslash \")会产生错误,但print("backslash \ ")不会产生错误。

\ 和 " 之间没有print(backslash \")空格。这会产生一个SyntaxError: EOL while scanning string literal

而如果我在 \ 和 " 之间留一个空格,那么就不会出现错误。为什么呢?

再举几个例子

print(" this is double backslash \\\sad ")
Run Code Online (Sandbox Code Playgroud)

上面的语句不会产生任何错误,它生成的输出如下:-

this is a single backslash \\sad 
Run Code Online (Sandbox Code Playgroud)

我在写这篇文章时得到了相同的输出:-

print(" this is a single backslash \\\\sad ")
Run Code Online (Sandbox Code Playgroud)

在这里,我分别转义了每一个\,所以这是有效的,但为什么前一个有效?

python

0
推荐指数
1
解决办法
505
查看次数

std :: string返回不合适的值

我编写了一个程序,使用重复字符计数执行字符串压缩.C++中的程序是:

#include<iostream>
#include<cstring>
std::string compressBad(std::string str)
{
    std::string mystr = "";
    int count = 1;
    char last = str[0];
    for (int i = 0; i < str.length();++i)
    {
        if(str[i] == last)
            count++;
        else
        {
            std::string lastS = last+"";
            std::string countS = std::to_string(count);
            mystr.append(lastS);
            mystr.append(countS);
            //mystr = mystr + last + count;
            count = 1;
            last = str[i];
        }
    }
    std::string lastS = last+"";
    std::string countS = std::to_string(count);
    mystr.append(lastS);
    mystr.append(countS);
    return mystr;        
    //return mystr+last+count;
}
int main()
{
    std::string str;
    std::getline(std::cin, …
Run Code Online (Sandbox Code Playgroud)

c++ string c++11

-1
推荐指数
1
解决办法
86
查看次数