小编TAR*_*ARS的帖子

如何初始化C中堆中的只读内存位置?

考虑以下代码:

#include<stdio.h>

int main()
{
    const char* c = malloc(1);
    *c = 'a';
    printf("%c\n",*c);
}
Run Code Online (Sandbox Code Playgroud)

该代码显然会引发以下编译错误:

file1.c:7:3: error: assignment of read-only location ‘*c’
*c = 'a';
^
Run Code Online (Sandbox Code Playgroud)

如何在堆内存中初始化const变量?

c

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

当三元运算符用作cout的参数时,添加/不添加括号之间的区别

这个问题显然不是重复这个.在这里,在原来的页面,我发现这两个代码片段似乎给矛盾的原因,我的目标是获得一个清晰而不仅仅是了解什么是给出这个.

我有多少次编辑此问题以说服每个人这个问题与不重复.请完整阅读我的问题以及我提供的参考页面.他们在那里解释错了,我需要澄清那个.一般来说,不是了解cout.

我在这个页面中遇到了以下两个代码片段.

第一个片段:

#include <iostream>
using namespace std;

int main()
{
  int test = 0;
  cout << test ? "A String" : 0 << endl;

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

第二个片段:

#include <iostream>
using namespace std;

int main()
{
  int test = 0;
  cout << (test ? "A String" : 0) << endl;

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

它说第一个代码片段肯定会抛出编译错误,但第二个代码片段可能编译也可能不编译.

我认为这两者没有任何区别.请解释差异,如果有的话.在页面的解释中,他们似乎给出了相互矛盾的理由.我需要清楚那一个.

我不明白为什么这个问题继续得到负面投票,而没有人将其标记为重复,也没有人正确回答.

c++

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

标签 统计

c ×1

c++ ×1