c++知识点学习3

本文详细探讨了C++中的复合类型(如string, 数组, 结构体, 指针和自由存储空间),涵盖了数组操作、字符串处理、结构体定义、指针概念、内存分配与释放,以及动态数组的使用。重点介绍了如何通过指针访问数组元素和new/delete关键字在内存管理中的运用。
摘要由CSDN通过智能技术生成

复合类型:string, 数组, 结构体, 指针及自由储存空间

  1. 数组:
    short nums[10] {3,2,5,6};
    char str[] = “Bubbles”; // 记得加上结尾的空字符
  2. 字符串
    输入: cin.getline() // 读取一行
    cin.get() // 读取一行但是丢弃换行符, 并把换行符留在队列里, 下一次cin.get()直接读取换行符
    string str1 = “Bubbles”;
    string对象可以赋给另外一个,数组不可以,数组使用 strcpy(char2, char1)来把1赋给2
    strcat(),将字符串附加到字符数组末尾,针对char数组,string类直接+=
    cin,cout可以用于string类的io
  3. struct结构体
    struct kk
    {
    int type;
    char name[20];
    float volumn;
    union // 共用体
    {
    long id_num;
    char id_char[20];
    };
    };
    kk prize;
    if (prize.type == 1)
    cin >> prize.id_num;
    else
    cin >> prize.id_char;
  4. 指针及自由储存空间

a) 指针是一个变量,储存的是值的地址
int p_updates;
p_updates = &updates;
p_updates和updates等价
指针声明必须指定其指向的数据类型

b) 使用new分配内存, 使用delete释放内存
int *ps = new int;
int *pt = new char [20]; // 动态数组
delete ps; // 只会释放掉new的int内存,不会删除指针, delete与new配对
delete [] pt;

使用指针来访问数组:
使用pt[0]来访问数组中第一个元素, 而不是*pt

使用new和直接声明的区别:
直接声明是静态联编, 在编译时分配内存; 使用new是创建动态数组, 动态联编, 在运行时分配内存

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值