我有一个C编程问题.
我想知道两者之间的差异,以及一个对其他人有用的地方吗?
假设我有一个名为employee的结构,如下所示:
struct emp{
char first_name[10];
char last_name[10];
char key[10];
};
Run Code Online (Sandbox Code Playgroud)
现在,我想存储员工记录表,然后我应该使用哪种方法:
struct emp e1[100]; // Orstruct emp * e1[100];我知道这两个不一样,但是想知道第二个声明会引起兴趣并且更有利于使用的用例.
有人可以澄清吗?
我曾尝试在列表中测试擦除功能,但我不能成功!我的编译器的错误消息是:
[Error]error: no matching function for call to
`std::list<int,std::allocator<int> >::erase(std::_List_const_iterator<int>&)'.
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
#include <iostream>
#include <list>
using namespace std;
int main()
{
int ia[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 55, 89};
list<int> ilst(ia, ia + 11);
list<int>::const_iterator iter2 = ilst.begin();
for(; iter2 != ilst.end(); ++iter2)
{
if(*iter2 % 2 != 0)
{
iter2 = ilst.erase(iter2); //error!
--iter2;
}
}
iter2 = ilst.begin();
for(; iter2 != ilst.end(); ++iter2)
{
cout << *iter << " ";
}
cout …Run Code Online (Sandbox Code Playgroud) "32位操作系统","32位处理器"的确切含义是什么?
我是这个领域的初学者; 如果你有任何合适的文件,请指出我.
谢谢.
operating-system memory-management computer-architecture virtual-memory
有一个包含这些语句的文件:
public:
boost::shared_ptr<TBFControl::TbfCmdHandler> _tbfCmdHandlerPtr;
// will be private later...
boost::shared_ptr<TBFControl::TbfCmdHandler> getTBFCmdHandler()
{ return _tbfCmdHandlerPtr; }
Run Code Online (Sandbox Code Playgroud)
我可以这样使用它:
boost::shared_ptr<TBFControl::TbfCmdHandler>myTbfCmdHandlerPtr(
this->getTBFInstallation()-> _tbfCmdHandlerPtr );
Run Code Online (Sandbox Code Playgroud)
但不是,就像我想要的那样:
boost::shared_ptr<TBFControl::TbfCmdHandler>myTbfCmdHandlerPtr(
this->getTBFInstallation()->getTBFCmdHandler() );
Run Code Online (Sandbox Code Playgroud)
使用getter函数,会发生以下错误:
'Housekeeping :: TBFInstallation :: getTBFCmdHandler':无法将'this Housekeeping :: TBFInstallation'中的'this'指针转换为'Housekeeping :: TBFInstallation'
这里出了什么问题?
我试图在JavaScript中理解===运算符的确切算法.它被定义为类似的东西
比较x === y,其中x和y是值,产生真或假.这样的比较如下进行:
- 如果Type(x)与Type(y)不同,则返回false.
- 如果Type(x)是Undefined,则返回true.
- 如果Type(x)为Null,则返回true.
- 如果Type(x)是Number,那么
- 如果x是NaN,则返回false.
- 如果y是NaN,则返回false.
- 如果x与y的Number值相同,则返回true.
- 如果x是+0且y是-0,则返回true.
- 如果x是-0且y是+0,则返回true.
- 返回false.
- 如果Type(x)是String,则如果x和y完全相同的字符序列(相应位置的长度和字符相同),则返回true; 否则,返回false.
- 如果Type(x)是布尔值,如果x和y都为true或两者都为false,则返回true; 否则,返回false.
- 如果x和y引用同一个对象,则返回true.否则,返回false.
现在,如果我写了类似的东西
var t1 = undefined,t2 = 2;
typeof(t1); //"undefined"
typeof(t2); //"number"
t1 === t2; //returns false ?????
Run Code Online (Sandbox Code Playgroud)
考虑第2点和第3点:它应该返回true.我在Chrome 15.0.874.106米测试它.有人可以解释一下这种情况到底发生了什么吗?
我只是做了一些事情并编写了这个程序.我得到了以下输出.我知道函数解析在运行时发生,而变量的绑定发生在编译期间,但我无法理解的是我得到的第一个输出(this->n).任何人都可以向我解释这个吗?
# include <iostream>
# include <stdio.h>
# include <conio.h>
using namespace std;
class A
{
int n;
public:
virtual void Fun1(int no=10)
{
int n=no;
cout<<"A::Fun1() "<<n <<"\n";
}
};
class B :public A
{
int n;
public:
virtual void Fun1(int no=20)
{
int n=no;
cout<<"B::Fun1() " << this->n << "\n"; // WHY SO ? gives B::Fun1() 40
cout<<"B::Fun1() " << n << "\n";
}
};
int main()
{
B b;
A &a =b;
a.Fun1();
A a1=b; …Run Code Online (Sandbox Code Playgroud) 我有一个C++函数返回一个std::vector<float>.
我正在与一些C代码接口.
如何更改此C++函数以便它返回一些指向float数组的指针,如何保存此返回的数组以便我可以在我的C代码中使用它?
我的问题是通用的,与任何特定的微控制器无关.下面是写入硬件寄存器地址的代码.在这段代码中,我试图一个接一个地写几个值.
unsigned int *p; //declare a pointer
p = (int *) 0x200; //point to hardware register address
*p = 0x12; // write to hardware register address
*p = 0xA5; // write to hardware register address
*p = 0xff; // write to hardware register address
Run Code Online (Sandbox Code Playgroud)
以上是否需要更正?