c++数据类型上的改变

本文探讨了C++中不同数据类型之间的转换方法,包括隐式转换和显式转换。内容涉及基本数据类型的提升、静态_cast、动态_cast、const_cast和reinterpret_cast的使用场景和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <string>        //c++的字符串处理函数
#include <cstring>       //c中的字符串处理函数
using  namespace  std;

int  size = 0;
bool  empty()
{
  return  size == 0;
}

//结构体里面允许存在函数了
struct  girl
{
    //数据成员,也叫“属性”
    char name[20];
    int age;
    //成员函数,也叫“行为”
    void print()
    {
        cout << name << " " << age << endl; 
    }
};

int  main()
{
     bool  boolNum = 1;
     //1.含义:真和假
     //2.打印的值:0或1
     //3.作用:充当开关,充当函数返回值 
     //4.特殊的初始化
     //5.非零表示成立,零表示不成立,-1也表示成立,任何非零值都表示成立
     boolNum = false;
     boolNum = true;
     boolNum = -1;
     printf("%d",boolNum);
      
     //指针赋值问题:NULL改为nullptr
     int  *ptr = nullptr;               //避免空和零的重复
     //动态申请内存   malloc 和 free  转换到 new  和  delete
     //1.分配单一内存:指针  转变成  普通变量
     ptr = new  int;
      //2.分配一段内存
      int *array = new int[10];                    //int  array[10]
      //3.申请内存并初始化
      int   *pInt = new  int(12);             //普通变量用()进行初始化
      int   *pArray = new  int[3]{1,2,3}      //数组就用 {} 大括号进行初始化      
     dekete  []   array;             //释放数组 
     delete ptr;                     //释放普通变量
     //4.内存池,申请的内存可以再分配
     char  malloc = new  char[1024];             //首先申请1024个字节
     int  *pIntNum = new(malloc)  int;           //(malloc)是首地址,申请四个字节
     char *charArray = new(malloc+4) char[100];  //再分配
     //释放内存的时候,只需要把总内存释放就好了,不用释放多次
     delete [] malloc;
     
     //输入和输出
     //printf 转换为 cout<<
     //scanf  转换为 cin>>
      
     //1.单个数据输入和输出
     int num = 0;
     char str[20] = "";
     printf("请输入一个num:");
     cin >> num;      //cin  为  scanf
     cout << num;     //cout 为  printf
     printf("\n请输入一个str");
     cin >> str;
     cout << str;
     //2.原样输出,它支持转义字符
     cout << "Iloveyou\n";
     //3.多个数据的输出
     //endl  等效于  "\n" ,endl还有清空缓冲区的作用
     cout << "Iloveyou" << num << "\t" << str << endl;
     cin >> num >> str;
     cout << num << "\t" << str << endl;
     //结构体数据的改变 
     //1.允许存在函数
     //2.用结构体类型不需要struct,直接去用结构体名
     girl  myGirl = {"baby" , 10 };
     //3.概念性的东西
     //如何访问函数,和访问结构体成员一样的方式,用 点 的方式去访问
     myGirl.print();
     //string 类型的基本使用
     //string 并不是c语言中的字符串
     string  str1;
     string  str2("Iloveyou");
     string  str3 = "Make";
     //括号里面传变量常量都行
     string  str4(str2);
     //基本操作,直接加也没问题
     string  str5 = str4 + str3;
     cout << (str5  > str4) << endl;
     cout << (str5 == str4) << endl;
     cout << (str5  < str4 ) << endl;
     //c++中的string 转换为c语言中的字符串:  .c_str()
     printf("\n%s\n",str5.c_str());
     
     system("pause");
     return  0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值