C语言 - 默认情况下,静态初始化字符串是否为const?

时间:2017-02-11 05:47:39

标签: c string declaration

这样的声明:

 <html>
  <body>
  <header>
<h1>
Hands-on Project 3-3
</h1>
  </header>
     <article>
   <h2>Scouting Locations</h2>
    <div id="results">
    <div id="renderList"></div>
  </div>
 </article>
<script>
(function(){
var ul = document.createElement('ul');
ul.setAttribute('id','proList');

var t, tt;
places = ["Atlanta", "Nashville", "Dallas", "Los Angeles", "Miami"];

document.getElementById('renderList').appendChild(ul);
places.forEach(renderplacesList);

function renderplacesList(element, index, arr) {
    var li = document.createElement('li');
    li.setAttribute('class','item');

      ul.appendChild(li);

    t = document.createTextNode(element);

    li.innerHTML=li.innerHTML + element;
  }
 })();
 </script>
 </body>
</html>

是否带有一些隐含的const?

我想知道下一个例子是否有意义。

char* string = "Test";

1 个答案:

答案 0 :(得分:2)

char* string = "Test";

不要那样做。这应该会产生一个警告,因为它实际上是一个静态字符串,但它不是。如果您写入字符串,它将会爆炸。

const char* string = "Test";

正确。

char* const string = "Test";

不正确。这意味着string指针不能改变但其内容可以改变,除了错误之外这不是很有用。

const char* const string = "Test";

正确。现在,string指针及其内容都不会改变。我很少在*的右侧使用const,但它有其用途。

如果你真的想要一个可写字符串

char string[] = "Test";