小编Viv*_*yan的帖子

什么回报; 在布尔返回类型返回的C函数中?

假设布尔返回类型的C函数(布尔值可以实现为0和1的枚举或其他方式,但这并不重要):

boolean foo ()
{
  //do something

  return;
}
Run Code Online (Sandbox Code Playgroud)

这又回来了什么?它返回FALSE吗?或者只是退出函数而没有任何回报?函数期望从foo返回的函数会得到什么?

c boolean return function undefined-behavior

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

C中的char stringA [LEN]和char*stringB [LEN]之间有什么区别?

我读了几个类似的问题,C:字符指针和数组之间的差异,是什么个char []与char*S之间的区别?,char array []和char*array有什么区别?但他们似乎都不清楚我的怀疑.

我知道

char *s = "Hello world";
Run Code Online (Sandbox Code Playgroud)

使字符串不可变,而

char s[] = "Hello world";
Run Code Online (Sandbox Code Playgroud)

可以修改.

我怀疑的是,如果我这样做char stringA[LEN]; ,char* stringB[LEN];他们有什么不同吗?或者stringB在之前的情况下再次变得不可变?

c arrays string pointers

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

后期绑定有哪些优点?在C++中的函数指针的上下文中给出一个示例

首先,让我澄清这个问题并不能清楚地解释我的怀疑.设置上下文清晰.我在C/C++中专门针对函数指针问这个问题.

我知道早期绑定和后期绑定之间的区别以及它是如何工作的.我想要了解的是以下一个使用C/C++中的函数指针的示例:

在许多教科书中,已经提到:

后期绑定的优点是它比早期绑定更灵活,因为关于调用哪个函数的决定不需要在运行时进行.

另外,它提到:

使用后期绑定,程序必须读取指针中保存的地址,然后跳转到该地址.这涉及一个额外的步骤,使其稍慢.

#include <iostream>
using namespace std;

int Add(int nX, int nY)
{
    return nX + nY;
}

int Subtract(int nX, int nY)
{
    return nX - nY;
}

int Multiply(int nX, int nY)
{
    return nX * nY;
}

int main()
{
    int nX;
    cout << "Enter a number: ";
    cin >> nX;

    int nY;
    cout << "Enter another number: ";
    cin >> nY;

    int nOperation;
    do
    {
        cout << "Enter an operation …
Run Code Online (Sandbox Code Playgroud)

c c++ function-pointers late-binding

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