c ++我无法理解const char *和char *之间的区别

时间:2016-11-17 18:06:04

标签: c++ char const

我知道你会说它是一个重复的但是相信我,我读了很多关于这个的文章,但我仍然无法理解什么是差异所以我给出了两个例子。
1。

int strlen(const char* string)
{
   int i = 0;
   while (string[i] != '\0')
   {
       ++i;
   }
   return i;
}

2

int strlen(char* string)
{
   int i = 0;
   while (string[i] != '\0')
   {
       ++i;
   }
   return i;
}

主:

int main() 
{
    char str[] = "Hello";
    cout << strlen(str) << endl;
}

第二个会起作用,在第一个不会出错时。

1 个答案:

答案 0 :(得分:1)

案例1:您可以更改string的值,它是只读的。它用于防止函数改变参数值(最小特权原则

案例2:您可以更改string的值。

另外,请检查评论中的链接。