const char* 、char、char*、std::string

const char* 

         `const char*` 是一个指向字符常量的指针。它通常被用来表示以零结尾的字符数组(C 字符串)。这个指针指向了字符串在内存中的首地址,可以通过对指针进行解引用操作来获取具体的字符内容。

示例代码:

const char* str = "H";
	std::cout << str << std::endl;  // 输出整个字符串 H
	std::cout << str[0] << std::endl;  // 输出第一个字符 H
   const char* str = "Hello, World!";
   std::cout << str << std::endl;  // 输出整个字符串 Hello, World!
   std::cout << str[0] << std::endl;  // 输出第一个字符 H

   注意,由于 `const char*` 指向的是字符常量,所以不能通过指针修改字符串内容。

char 

        `char` 是一个单个字符类型。它可以用来存储和表示一个字符。在 C++ 中,字符常量用单引号括起来,例如 'A'、'x' 等。

示例代码:

char ch = 'A';
   std::cout << ch << std::endl;  // 输出字符 A

   `char` 类型的变量可以用于存储单个字符,并且可以进行运算和比较等操作。

char*

        `char*` 是 C++ 中表示指向字符的指针类型。它通常被用来表示以零结尾的字符数组(C 字符串)。

        `char*` 可以指向一个字符数组的首地址,通过对指针进行解引用和指针运算,可以对字符数组进行操作。

示例代码:

char str[] = "Hello, World!";
char* ptr = str;  // 指向字符数组的首地址

std::cout << ptr << std::endl;  // 输出整个字符串
std::cout << *ptr << std::endl;  // 输出第一个字符 'H'

// 通过指针遍历字符数组
while (*ptr != '\0') {
    std::cout << *ptr;
    ptr++;
}
std::cout << std::endl;  // 输出整个字符串

        需要注意的是,由于 `char*` 可以修改指向的字符数组内容,因此在使用时要注意指针的有效性和边界检查,以避免访问越界和缓冲区溢出等问题。同时,修改以 `char*` 表示的字符串可能会产生未定义行为。

std::string 

        请注意,在 C++ 中,` const char* ` 和 ` char `、' char* ' 经常被用来处理字符串,但它们并不是现代 C++ 推荐的字符串表示方式。可以使用 `std::string` 类型来更方便地处理字符串,并且提供了更多的字符串操作功能。

示例代码:

#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, World!";
    std::cout << str << std::endl;  // 输出字符串
    std::cout << str[0] << std::endl;  // 输出第一个字符 'H'

    char ch = 'A';
    std::cout << ch << std::endl;  // 输出字符 'A'

    return 0;
}

        这样使用 `std::string` 类型可以更方便地处理字符串,并且不用担心指针操作和缓冲区溢出等问题。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值