3.25C++

定义自己的命名空间,其中有string类型的变量,再定义两个函数,一个函数完成字符串的输入,一个函数完成求字符串长度,再定义一个全局函数完成对该字符串的反转

cpp 复制代码
#include <iostream>
#include <cstring>
using namespace std;
namespace my {
    string s;
    void fun();
    void len(string s);
}
void my::fun(){
    cout<<"输入字符串";
    getline(cin,s);
    cout<<"s="<<s<<endl;
}
void my::len(string s){
    cout<<"长度为"<<s.size()<<endl;
}
void restr(string s){
    string s1=s;
    int n=s.size();
    for(int i=0;i<n/2;i++)
    {
        char temp = s1.at(i);
        s1.at(i)=s1.at(n-i-1);
        s1.at(n-i-1)=temp;
    }
    cout<<"反转前:"<<s<<endl;
    cout<<"反转后:"<<s1<<endl;
}
using namespace my;
int main()
{
    my::fun();
    my::len(my::s);
    restr(my::s);
    return 0;
}

有以下定义,说明哪些量可以改变哪些不可以改变?

const char *p;

const (char *) p;

char *const p;

const char* const p;

char const *p;

(char *) const p;

char const* const p;

①const char *p; p的指向可以修改,p指针指向的内容不可以修改

②const (char *) p; 和1一样,p的指向可以修改,p指针指向的内容不可以修改

③char *const p; p指针指向的内容可以修改,p的指向不可以修改

④const char* const p; p的指向和p指向的内容都不可以修改

⑤char const *p; 和1一样,p的指向可以修改,p指针指向的内容不可以修改

⑥(char *) const p; 和3一样,p指针指向的内容可以修改,p的指向不可以修改

⑦char const* const p; p的指向和p指向的内容都不可以修改

相关推荐
郝学胜-神的一滴18 分钟前
Effective Modern C++ 条款34:优先考虑lambda而非std::bind
开发语言·c++·程序人生
D_evil__27 分钟前
[C++高频精进] 网络编程:网路基础
c++
mjhcsp29 分钟前
P1220关路灯mjhcsp
c++·动态规划
kyle~40 分钟前
算法与数据结构---并查集(Union-Find)
数据结构·c++·算法
茉莉玫瑰花茶43 分钟前
ProtoBuf - 1 - 下载和环境配置
开发语言·c++·protobuf
_OP_CHEN1 小时前
C++进阶:(十六)从裸指针到智能指针,C++ 内存管理的 “自动驾驶” 进化之路
开发语言·c++
爱学习的小邓同学1 小时前
C++ --- map/set的使用
开发语言·c++
MSTcheng.1 小时前
【C++进阶】继承(下)——挖掘继承深处的奥秘!
开发语言·c++
学困昇1 小时前
Linux基础开发工具(上):从包管理到“进度条”项目实战,掌握 yum/vim/gcc 核心工具
linux·运维·开发语言·数据结构·c++·vim
ALex_zry1 小时前
Rust语言基础分析与C++对比:系统编程的现代演进
java·c++·rust