一文看懂字符数组与字符指针的异同

#include <iostream>
using namespace std;

int main() {
    char s[]="abc";              //未知长度的字符数组必须初始化
    char *ptr="abc";
    
    cout<<sizeof(s)<<endl;       //4  abc后边有一个\0
    cout<<sizeof(ptr)<<endl;     //指针大小 64位下式8
    
    cout<<s<<endl;               // abc  
    cout<<*s<<endl;              // a  
    cout<<&s<<endl;              // 地址  
    cout<<(s+1)<<endl;           // bc  
    cout<<*(s+1)<<endl;          // b  
    cout<<&s[1]<<endl<<endl;     // bc  
    cout<<ptr<<endl;             // abc  
    cout<<*ptr<<endl;            // a  
    cout<<&ptr<<endl;            // 地址  
    cout<<(ptr+1)<<endl;         // bc  
    cout<<*(ptr+1)<<endl;        // b  
    cout<<&ptr[1]<<endl;         // bc 
    
    s[1] = 'd';
    cout<<s<<endl;               //adc
    ptr[1] = 'e';
    cout<<ptr<<endl;             //报错
    
    return 0;
}

字符数组可以修改数组元素的值

字符指针修改元素的值会报错,但是指针可以修改指针指向另外一个字符串

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值