#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[]什么?
这是调用基类构造函数的合法方法吗?
基类如下
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++中定义派生类构造函数是否合法,如果是,基类构造函数是如何调用的?
我试图在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)
这两个块是否都相同,或强制必须阻止赋值语句,为什么?