【C++】基础语法1--new

名称空间

#include <iostream>
using namespace std;
//一
using namespace name
int main()
{
    myfun();
}

//二
int main()
{
    name::myfun();
}

cout

cout<<"hello"<<endl;//endl:换行符

cin

int a=0;
cin>>a;//将输入内容放入变量a
cin>>a>>b;//连续输入使用空格、回车、TAB健来分隔

新的类型

string(字符串类型)

string mystr="hello";

bool

表示真假。非零值为--true,零为--false

内存区域划分

  • 代码区:代码的执行指令、汇编指令(只读)
  • 全局区(data、bss):全局变量、static修饰的变量、部分常量(const修饰的全局常量,字符串常量)
  • 栈:局部变量、函数返回值、形式参数
  • 堆:程序员手动开辟、释放

程序在编译后会生成一个可执行文件

程序执行前,文件中包含:代码区、全局区

执行过程中,文件主要包含:堆、栈

const常量

const type name=value;
const int *p:p的指向可以修改,不能间接修改指向的值(*p不能修改)

new开辟空间

在堆上开辟空间,返回值是空间的首地址。(内部也是调用malloc完成的,只是在这个基础上做了其他的维护)

释放使用delete来完成

//C操作
int *p=(int*)malloc(sizeof(int));

//C++操作:指针类型 首地址名=new 数据类型;
int *q=new int;

//在单独开辟空间时可以初始化变量值
int *q=new(10);//将空间值初始化为10

//用[]来标识数组空间开辟
int *q_arr=new int[10];

delete空间释放

//delete堆空间首地址
int *p=new int(10);
delete p;
p=NULL;

//数组的释放需要使用delete[]
delete[]p_arr;//p_arr表示数组空间首地址

new练习 

​​​​​​​https://blog.csdn.net/weixin_45485670/article/details/124127057

C++引用

作用:减少指针带来的复杂操作,增强代码的可读性

意义:就是给变量起一个别名

//<type>&another name=name,&:引用标识符
int a=9;
int &a_r=a;

 引用的适用场景

  • 引用作为函数参数时,在函数内部可以直接修改实参,不需要传地址。
  • 引用是返回值时,函数调用可以作为左值,不能返回局部变量的引用
int &fun()
{
    static int a=23;
    return a;
}
  • 常量引用
  • 在函数传参时适用,防止误操作,修改实参
int &a=12;//引用常量时不可以直接这样写
const int& c_b=13;//可以 等价于const int c_b=13;

//其中原理
const int temp=13;
const int& c_b=temp;//temp被编译器屏蔽
//由此c_b变为常量13,c_b不能被修改
void fun(const int& r_a)
{
    r_a=20;
}
int main()
{
    int a=1;
    fun(a);
    cout<<a;
    return 0;
}
  • 引用的本质:一个指针常量的操作
int *const p;//指针常量:不能改变p的指向

const int *p;//常量指针:不能通过*p修改值

const int *const p;//什么都不能改变

int a=13;
int &r_a=a; //int *const r_a=&a;
r_a=89; //*r_a=89;
int b=87;
r_a=b; //只是单纯的赋值

//本质
int a=13;
int *const r_a=&a;
*r_a=89;

//常量引用
const int &r_b=15;//const int *const r_b=15;//什么都不能改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lindsey小姐月光加冕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值