小编hen*_*yao的帖子

默认情况下,C中的基本数据类型是可变的还是不可变的?

我在C#,java中找到了很多关于数据类型可变性的信息......但是纯粹的C.

例如,int默认情况下在C中是不可变的吗?

例如,查看以下代码示例:

#include <stdio.h>

int main()
{
  int a,b,c;
  b=0;
  c=0;
  a=b+c;
  b=1;
  c=2;

  printf("1st time %d\n",a);//gives out 0
  c=3;
  printf("2nd time %d",a);//gives out 0
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码表明普通int是不可改变的,对吗?

c variables types

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

如何避免在每次"返回"之前调用free()

我面临的问题是free()什么是malloc().有没有办法避免在以下代码中多次写入free(p)?

char *p = (char*) (malloc(100 * sizeof(char)));
if (A)
{
    free(p);
    p=NULL;
    return -1;
}
a++;
if (B)
{
    free(p);
    p=NULL;
    return -1;
}
b++;
if (C)
{
    free(p);
    p=NULL;
    return -1;
}
free(p);
p=NULL;
return 0; 
Run Code Online (Sandbox Code Playgroud)

c free

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

malloc()的返回值和数组名称之间的区别是什么

例如,我有

char* c=(char *)malloc(100*sizeof(char));
printf("0x%x,c);
printf("0x%x,&c);
Run Code Online (Sandbox Code Playgroud)

这将显示不同的价值c&c.

但是,如果我有以下内容:

char d[100];
printf("0x%x,d);
printf("0x%x,&d);
Run Code Online (Sandbox Code Playgroud)

这表明价值d&d是一样的.

如何产生的第一个代码让我对不同的结果c&c

c pointers

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

将内存分配给命名空间中定义的变量时

例如,假设 a是一个公共静态成员ClassA.

namespace SPACE{

   char* ClassA::a=NULL;

   ClassA::ClassA()
   {
     ClassA::a="initialized here";
   }
}
Run Code Online (Sandbox Code Playgroud)

所以有两个问题:

  1. 什么时候a=NULL被调用?之前main()或之后?
  2. 既然a是静态成员,为什么它可以用NULL和定义两次“initialized here"

c++ static

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

为什么我的析构函数异常没有被捕获

class D
{
public:
    ~D() { throw std::exception(); }
};
int main()
{
    try
    {
        try
        {
            D d;
        }
        catch (...)
        {
            cout << "1";
        }
    }
    catch (std::exception& e)
    {
        cout << "2";
    }
}
Run Code Online (Sandbox Code Playgroud)

我的轻描淡写是,这应该在2中捕获。但是它没有捕获,而是终止了程序。

c++ exception

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

这将在短路评估中首先执行(a && b)

可以说我有以下代码:

if (a&&b)
{
...
}
Run Code Online (Sandbox Code Playgroud)

第一个问题,谁决定在这种情况下使用短路评估?编译器还是C标准?

第二个问题,哪一个将首先评估?ab.序列由谁决定,有没有办法改变我的代码中的序列?

c

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

标签 统计

c ×4

c++ ×2

exception ×1

free ×1

pointers ×1

static ×1

types ×1

variables ×1