【C++】结构化设计基础要点

20200706@C语言学习第21天,C++学习第4天

这里总结了一下C++全部由右到左的结合性的情况,以及一个可查的表各种语言的符号结合性与优先级

一、从右向左的结合性(最全)

1、赋值运算=
2、反码运算~(按位取反)
3、++x,- -x运算
4、复合运算?=(也是赋值运算的一种,如乘号赋值*=)
5、强制类型转换(类型)
6、取值运算*与取地址运算&
7、逻辑非运算!
8、长度运算sizeof()
9、负号运算-

二、运算优先级口诀(最全)

在网上看到一个口诀可以稍微记一下:
同一优先级的运算符,运算次序由结合方向所决定。

口诀:

括号成员第一; //括号运算符[] ()成员运算符. ->
全体单目第二; //所有的单目运算符比如++、 --、 +(正)、 -(负) 、指针运算*&
乘除余第三;
加减第四;
移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等
等于(与)不等排第七; //即== 和!=
位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; //逻辑运算符:|| 和 &&
十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)
条件高于赋值; //三目运算符优先级排到13 位只比赋值运算符和","高
逗号运算级最低! //逗号运算符优先级最低
————————————————
版权声明:口诀为CSDN博主「csdn_1HAO」原创,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/caomin1hao/article/details/79510141

20200707@C语言学习第15天,C++学习第2天

三、动态内存变量

上面一条博客让我明白,要操作C与C++,写入与存储与释放变量内容是重要的一个部分。其中最重要的就是malloc和free,即写入与存储与释放数据,所以我们重点关注一下动态内存变量,以为日后学习打下基础。在C++中,数据的写入与存储与释放是由new和delete两个操作符来完成的

(1)单个变量的动态分配与释放

指针变量名 = new 数据类型(初始值);
delete指针变量名;

语法说明:
数据类型指定动态分配变量的数据类型;
初始值指定所分配内存单元的初始值(用小括号扩起来),即变量的初始化。如果不需要初始化,“(初始值)”可以省略;
计算机执行new运算符时将按照数据类型指定的字节数分配内存空间并初始化,然后返回所分配内存单元的首地址。应当通过赋值语句将该首地址保存到一个预先定义的同类型指针变量中。
计算机执行delete运算符时将按照指针变量中的地址释放指定的内存单元。

int*p
为了动态分配一个int型变量,需预先定义好一个int型变量
p= new int;
使用new运算符动态分配一个int型变量,无变量名
将所分配内存单元的首地址赋值给指针变量p。

*p=10;
通过指针变量p间接访问所分配的内存单元,向其中写入数据10
cout<<*p
通过指针变量p间接访问所分配的内存单元
delete p;
内存使用完后,用delete运算符释放该内存空间
这三条语句可以简化成一条:

int*p = new int(10);   //动态分配变量时进行初始化

(2)一维数组的动态分配与释放

指针变量名 = new 数据类型[整数表达式];
delete[] 只恨变量名

语法说明:
数据类型指定动态分配变量的数据类型;
表达式指定一维数组的元素个数,用中括号"[]"括起来。表达式可以是单个常量、变量或是一个整数表达式,其结果必须为正整数。
计算机执行new运算时按照数据类型和元素个数分配相应字节的内存空间,然后返回所分配内存单元的首地址。应当通过赋值语句将该首地址保存到一个预先定义好的同类型指针变量中。注意:动态分配的数组变量不能初始化;
计算机执行delete运算符时将按照指针变量中地址释放指定的内存单元,“[]”表示所释放的内存空间是一个数组,其中包含多个内存单元,应同时释放。

int*p = new int[5];
动态分配一个int型一维数组变量,包含5个数组元素。
(p+1) = 10;
通过指针运算符访问第1个元素,向其中写入数据10
或过下表运算符访问第1个元素:p[1]=10;

cout<<
(p+1);
通过指针运算符访问第1个元素,读出数据10并显示出来
或通过下标运算符访问第1个元素:cout<<p[1];

delete[]p;
内存使用完后,用delete运算符释放该数组变量所分配的内存空间


                
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值