当前位置: 首页 > news >正文

网站推广培训哪里好临沂消防建设局官方网站

网站推广培训哪里好,临沂消防建设局官方网站,必应搜索推广,佛山网络公司哪家最好什么是指针? 指针是存储内存地址的变量。就像int变量用于存储整数值一样,指针变量用于存储内存地址。指针是一种指向内存单元的特殊变量。 内存单元地址通常使用的是16进制表示(0~9和A~F)来表示数字。显示…

什么是指针?
指针是存储内存地址的变量。就像int变量用于存储整数值一样,指针变量用于存储内存地址。指针是一种指向内存单元的特殊变量。

内存单元地址通常使用的是16进制表示(0~9和A~F)来表示数字。显示16进制数时,通常使用前缀0x。

声明指针:作为一种变量,指针也需要声明。通常将指针声明为声明为指向特定的类型。如int,者意味着指针包含的地址对应的内存单元存储了一个整数。
PointedType * PointerVariableName;

注意:除非对指针进行初始化,否则它包含的将是垃圾值。对于指针来说,这种垃圾值非常危险,因为指针包含的值被视为地址。未初始化的指针可能导致程序访问非法内存单元,进而导致程序崩溃。因此将指针初始化为NULL。

使用引用运算符(&)获取变量的地址
int age = 30;
&age 将是存储该变量的值(30)的内存的地址。

使用指针存储地址
int age = 30;
int* pAage = &age;

给指针重新赋值,使其指向另外一个变量

动态内存分配
如果在程序中使用下面这样的数组声明:
int myNums[100];
程序存在两个问题:
1.这限制了程序的容量,无法存储100个以上的数字
2.如果只需存粗1个数组,却为100个数字预留存储空间,这将降低系统的性能。
原因:数组的内存分配是静态和固定的。

使用new和deldete动态地分配和释放内存

使用new来分配新的内存块,通常情况下,如果成功,new将返回指向一个指针,指向分配的内存,否则将引发异常。使用new时,需要指定要为哪种数据类型分配内存。
Type* p = new Type;

需要为多个元素分配内存时,还可指定要为多少个元素分配内存
Type * p = new Type[num];

举例:
int* p = new int;
int* p = new int[10];

注意:使用new分配的内ucn最终都需使用对应的delete进行释放。
delete p;
delet[] p;

将关键字const用于指针
1.指针包含的地址是常量,不能修改,但可修改指针指向的数据
int day = 30;
int* const p = &day;
*p = 31;//OK!Data pointed to can be changed
int day2 = 28;
p = &day2;//Not OK! Cannot change address!

2.指针指向的数据为常量,不能修改,但可以修改指针包含的地址,即指针可以指向其他的地方。
int a = 24;
const int* p = &a;
int b = 12;
p = &b;//OK
*p = 13;//Not OK

3.指针包含的地址以及它指向的值都是常量,不能修改
int a = 24;
const int* const p = &a;
*p = 13;//Not ok
int b = 12;
p = &b;//Not Ok

使用指针时常犯的编程错误
1.内存泄漏
如果使用new动态分配的内存不再需要后,程序员没有使用配套的delete释放。

2.指针指向无效的内存单元
在使用*对指针解除引用,以访问指向的值时,务必确保指针指向有效的内存单元,否则程序要么崩溃,要么行为不端。

指针编程应该遵守一些基本原则
1.务必初始化指针变量,否则它将包含垃圾值,初始化NULL
2.务必仅再指针有效时才使用它,否则程序可能崩溃
3.对于使用new分配得内存,一定要记得使用delete进行释放,否则应用程序将泄漏内存,进而降低系统得性能。
4.使用delete释放内存块或指针后,不要访问它
5.不要对同一个内存地址调用多次delete
6.使用完动态分配得内存块后,被网络对其调用delete

引用是变量得别名。声明引用时,需要将其初始化为一个变量,因此引用只是另一种访问相应变量存储数据得方式。

要声明引用,可使用引用运算符&
VarType original = value;
VarType& ReferenceVariable = original;

using namespace std;
int main(){
int a= 30;
cout << “a=” << a << endl;
cout << “a is at address:” << &a << endl;

int*& b = a;
cout << "b is at address:" << &b << endl;
}

输出:a 和 b 的地址相同
因此,引用是真正的别名,即相应变量的另一个名字

是什么让引用很有用?
引用让您能够访问相应变量所在的内存单元。
using namespce std;
void GetSquare(int& number){
number*= number;
}

int main(){
cout << “Enter a number you wish to square”;
int number = 5;

GetSquare(number);
cout << "number = " << number << endl;

}
输出:25

将关键字const用于引用
需要禁止通过引用修改它指向的变量的值,为此可在声明引用时使用关键子const
int a = 30;
const int& b = a;
b = 45;//Not allowed:constRef can’t change value in original
int& c = b;//Not allowed.c is not const

问与答
1.我声明了两个指针
int* a = new int;
int* b = a;为了释放内存,是否需要对他们都调用delete?
答:这样做是错误的,对new返回的地址,只能调用delete一次,最好避免让两个指针指向相同的地址,因为对其中一个调用delete将导致另外一个无效。

http://www.15wanjia.com/news/156152.html

相关文章:

  • 西宁公司网站建设极家装修怎么样啊
  • 绿色蔬菜网站模板北京做网站建设公司哪家好
  • 有人上相亲网站做传销燕窝网站建设 考题
  • 网站开发python好还是PHP好舆情报告制度
  • 惠州热门的网站营销型网站建设计划书
  • 台州网站搭建北京企业建设网站公司简介
  • 产品分类 网站模板成都广告公司电话号码
  • 海珠网站建设方案wordpress 产品展示插件
  • 新区网站建设克隆wordpress
  • 企业网站策划案怎么写做网站手机验证收费吗
  • 西安网站外包网站 建设平台分析
  • 推广网站的广告怎样做网站自适应手机
  • 单本小说网站网站建设怎么管理业务员
  • 建立企业官方网站做网页设计的软件
  • 好用的种子搜索引擎广告优化正规公司
  • 高端大气网站推荐注册公司的步骤流程图
  • 南昌企业建设网站设计wordpress的seo收件箱
  • 网络设置的网站找承包工程的平台
  • 跨境电商网站怎么做关键词优化内容
  • 开发外包网站wordpress各部分功能
  • 南充网站建设有哪些怎么做网站动态地图
  • 网站开发者常见问题网站建设赋值
  • 用什么软件做网站最快推广方法的总结
  • 如今做哪些网站能致富广西网站开发公司
  • 一个公司可以做两个网站推广吗上海电商网站建设
  • 抚顺网站建设技术员招聘企业做网站还是做平台好
  • 咋把网站制作成软件wordpress调用菜单代码
  • 三五互联网站报价表十大免费erp管理软件
  • 手机网站html5自已创建网站要怎么做
  • 海尔网站建设的优势wordpress爱搭配