程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 字符串問題,字符串

字符串問題,字符串

編輯:C++入門知識

字符串問題,字符串


1、C/C++中字符串都是以’\0’結尾的。稍不留神就會造成字符串越界,例如:

char str[10];

strcpy(str,”0123456789”);

一般在復制字符串時一定要為在字符串長度的基礎上多申請一個字節內存給’\0‘

 

2、看看一下代碼會輸出什麼:

char str1[] = "Hello ZCM";
char str2[] = "Hello ZCM";

char *str3 = "Hello ZCM";
char *str4 = "Hello ZCM";

if (str1 == str2)
{
    cout<<"str1 is same as str2\n";
}
else
{
    cout<<"str1 is not same as str2\n";
}

if (str3 == str4)
{
    cout<<"str3 is same as str4\n";
}
else
{
    cout<<"str3 is not same as str4\n";
}

輸出:

C/C++把常量字符串放到單獨的一個內存區,即文字常量區,我的其他文章會對C++的代碼區段和性質作個總結,

這裡不熬述了。str1和str2是兩個字符串數組,我們會為他分配10個字節的空間並把“Hello ZCM”復制進去。所

以這是兩個初始地址不同的數組。

而str3和str4是兩個指針,我們無需為它分配內存以存儲字符串的內容,我們只需要把他指向“Hello ZCM”中的

內存地址就行了。由於“Hello ZCM”是字符常量,他在內存中只有一個拷貝,因此str3和str4指向的是同一個地址

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved