12.23日总结之C++学习笔记-1

  1. *iter++
    是一个复合表达式,可分解为*iter++iter,自增++的优先级要比解引用*的优先级要高,但是后缀自增表示先返回原本的值,再进行自增。也就是说上面的语句和*(iter++)是完全一样的。
    Ai解释“这是一个后缀递增操作符。它会返回当前的 iter 值,然后将 iter 增加一个位置。例如,如果 iter 当前指向向量的第一个元素,iter++ 会返回指向第一个元素的迭代器,然后将 iter 移动到第二个元素的位置。”
    注意区分前缀自增自减和后缀自增自减的区别,前缀是立即修改,并返回修改后的值;后缀是先返回原本值,再进行修改值。
  2. sizeof()函数
    int cnt[10];
    int *p=cnt;
    std::cout << sizeof(cnt)<< std::endl; //整个数组的大小
    std::cout << sizeof(*cnt)<< std::endl; //第一个元素的大小
    std::cout << sizeof(p) << std::endl; //指针本身的大小,64位系统为8,32位系统为4
    std::cout << sizeof(*p) << std::endl; //指针对象的大小
  3. 动态内存分配
    int *dest = new int[num];
    int *dest 是定义一个指向 int 类型的指针,用于存储 new 操作返回的内存地址。
    new int[num] 是 C++ 中的动态内存分配操作,它会在运行时从堆中分配一块连续的内存区域,这块内存区域的大小足以存储 num 个 int 类型的元素。
    注意区分前后的int区别,第一个int表示的指针类型,第二个int表示的是分配的动态内内存是int类型的。
posted @ 2024-12-23 22:12  小智001  阅读(21)  评论(0)    收藏  举报