小编Jay*_*y K的帖子

在C++中将数组传递给函数

#include <iostream>
using namespace std;

void printarray (int arg[], int length) {
    for (int n = 0; n < length; n++) {
        cout << arg[n] << " ";
        cout << "\n";
    }
}

int main ()
{
     int firstarray[] = {5, 10, 15};
     int secondarray[] = {2, 4, 6, 8, 10};
     printarray(firstarray, 3);
     printarray(secondarray, 5);

     return 0;
}
Run Code Online (Sandbox Code Playgroud)

这段代码有效,但我想了解数组是如何传递的.

printarray从main函数调用函数时,正在传递数组的名称.数组的名称是指数组的第一个元素的地址.这等同于int arg[]什么?

c++

60
推荐指数
4
解决办法
14万
查看次数

在C++中调用基类构造函数

这是调用基类构造函数的合法方法吗?

基类如下

class base_class
{
    public:
    base_class(int x, int y);    
    protected:
    int a;
    int b;
};

base_class::base_class(int x,int y)
{
    a=x;
    b=y;
}
Run Code Online (Sandbox Code Playgroud)

派生类如下

class derived_class: public base_class
{
    public:
    derived_class(int x,int y,int z);
    protected:
    int c;
};
derived_class:: derived_class(int x,int y,int z):base_class(x,y)  /*Edited and included the scope resolution operator*/
{
    c=z;
}
Run Code Online (Sandbox Code Playgroud)

这种方法是在C++中定义派生类构造函数是否合法,如果是,基类构造函数是如何调用的?

c++

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

缓冲区的非阻塞或阻止分配?

我试图在Verilog中实现一个小行缓冲区.我从一端放入数据并从另一端读取数据.

wire [29:0] temp_pixel;
reg  [29:0] temp_buffer[2:0];
Run Code Online (Sandbox Code Playgroud)

我可以使用像这样的阻塞分配语句,它应该按预期工作.

always @(posedge TD_CLK27)
begin
temp_buffer[0] = temp_buffer[1];
temp_buffer[1] = temp_buffer[2];
temp_buffer[2] = temp_pixel;
end
Run Code Online (Sandbox Code Playgroud)

但是,我可以使用非阻塞语句(如下所示)并仍能获得预期结果吗?或者temp_buffer [1]在被读入temp_buffer [0]之前会被temp_buffer [2]覆盖?

always @(posedge TD_CLK27)
begin
temp_buffer[0] <= temp_buffer[1];
temp_buffer[1] <= temp_buffer[2];
temp_buffer[2] <= temp_pixel;
end
Run Code Online (Sandbox Code Playgroud)

这两个块是否都相同,或强制必须阻止赋值语句,为什么?

buffer verilog fpga fifo

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

标签 统计

c++ ×2

buffer ×1

fifo ×1

fpga ×1

verilog ×1