Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เกิดอะไรขึ้นถ้าเราต่อสตริงลิเทอรัลสองตัวใน C++?

บทนำ

ในส่วนนี้เราจะดูคุณสมบัติของ string และ string literals ถ้าต้องการต่อสตริงสองตัวใน C++ ต้องจำบางอย่าง

  • ถ้า x + y เป็นนิพจน์ต่อสตริง โดย x และ y เป็น string ทั้งคู่ ผลลัพธ์จะเป็น copy ของตัวอักษรใน x ตามด้วยตัวอักษรใน y
  • x หรือ y สามารถเป็น string literal หรือ character ได้ แต่ไม่ใช่ทั้งคู่ ถ้าทั้งคู่เป็น string literal จะไม่สามารถต่อกันได้

ตัวอย่างที่ไม่ทำงาน

#include <iostream>
using namespace std;

int main() {
    cout << "Hello " + "World";
    return 0;
}

ผลลัพธ์

โค้ดข้างต้นจะคอมไพล์ไม่ผ่าน เพราะทั้งสอง operand เป็น literals

Left associativity ของ operator '+' ส่ง error ถ้าตัวใดตัวหนึ่งเป็น string จะทำงานได้

ตัวอย่างที่ทำงาน

#include <iostream>
using namespace std;

int main() {
    string my_str = "Hello ";
    cout << my_str + "World";
    return 0;
}

ผลลัพธ์

Hello World