指针和整数,指针和数组,new和delete,cstring和string
来源:互联网 发布:qq音乐获取数据错误 编辑:程序博客网 时间:2024/06/06 01:33
1.指针和数字
指针也是一种变量类型。但是,指针和整数是截然不同的两个类型,虽然指针变量里面存储的是地址(地址通常是是十六进制的整数)。
下面用法是错误的。
int *pt;pt = 0xB8000000; //类型不匹配
应该这样写:
int *pt;pt = (int *)0xB8000000;
2. 使用new来分配的一维数组地址是连续的。当用for循环来动态分配二维数组时,行与行之间的地址就不一定连续了。
3. 指针和数组基本上完全等价。指针和数组名指向数组的第一个元素的地址。但二者的区别有二:
a. 可以修改指针的值,但不能修改数组名的值,因为数组名是指针常量;即:pointname = pointname + 1 ;正确,而 arrayname = arrayname + 1错误。
b. 对于sizeof(arrayname),得到的值是数组的大小,单位是字节,对于sizeof(pointname),得到的是指针本身的大小,通常为4个字节(根据系统存储地址的情况而变 化)
4 .cstring 和string头文件的区别:
a. 拷贝字符串时,前者必须用strcpy或者strncpy,后者可用赋值运算符 =;
b.前者拷贝及其他操作时,要考虑字符串越界的情况,后者不用,因为string类可根据实际情况动态增长,而不用提前制定大小(类似于容器),前者使用字符串数组来模拟字符 串,后者使用一个string类。
5. C++管理内存的方式
a. 自动存储:局部变量;
b. 静态存储:全局变量或者声明为static类型的变量;
c.动态存储:new操作符分配的变量
对于new操作符分配的变量类型,new和delete管理了一个内存池,delete指针后,是将这个指针指向的地址块上的内容delete掉了,并没有delete掉这个指针,因此还可以继续操作这个指针,如再次new操作。
由于这个内存池的概念是全局的概念,因此,new和delete并不一定要存在于同一个函数中,可任意使用,指针要保证一个new一个delete。
- 指针和整数,指针和数组,new和delete,cstring和string
- 指针⑶,new和delete
- new和delete,以及指针
- C++中new和delete在数组指针和指针数组中的调用
- C++中指针的new和delete
- 容器内指针的new和delete
- C++(1) 指针 new 和delete
- 二维指针的new和delete
- 指针和指针数组
- new和二级指针
- C++ new 和 函数指针的数组
- 指针数组和数组指针
- 指针数组和数组指针
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 数组指针和指针数组
- linux和Windows下安装ruby
- leetcode12: First Missing Positive
- windows系统设置保护视力方法
- [IOS] how to make ipa in xcode 4.3
- 高通fastcv编译出现“android.view.WindowManager$BadTokenExcep
- 指针和整数,指针和数组,new和delete,cstring和string
- FFPLAY的原理 .
- CVE-2012-1823 php-cgi远程代码执行
- Java基础_运算符
- zmq: basic patterns Request-Reply, Publisher-Subscriber, Denvilator-worker-sink.
- ACM 3984 迷宫问题
- 独立博客地址:www.isaced.com
- 9个最常见IE的Bug及其fix
- yum找不到安装包