数组和指针
来源:互联网 发布:淘宝放心淘是什么意思 编辑:程序博客网 时间:2024/05/16 13:01
数组
显示初始化数组元素
如果没有显示提供元素初值,则数组会像普通变量一样初始化:
在函数体外定义的内置数组,其元素均初始化为0;
在函数体内定义的内置数组,其元素无初始化;
如果元素为类类型,则自动调用该类的默认构造函数进行初始化;如果没有默认构造函数,则必须为该数组的元素提供初始化。
与vector类型不同,数组的长度是固定的。
创建和释放动态数组
通常在编译时无法知道数组的维数,所以才需要动态创建该数组
int i = 10int *p = new int[i];//uninitializedint *s = new int[5](1,2,3,4,5);//initializeddelete []p;delete []s;
指针
指针和数组用于低级操作。现代的c++程序采用vector类型和迭代器取代一般的数组、采用string类型取代c风格字符串。
void*指针
C++提供特殊的指针类型void*,它可以保存任何类型对象的地址;
支持有限的操作:
与另一个指针比较;
向函数传递void*指针或从函数返回void*指针
给另一个void*指针赋值。
不允许使用void*指针操纵它所指向的对象。
指针的算数操作
ptrdiff_t n = ip2-ip;//ok distance between the pointers
ptrdiff_t是标准库类型,在cstddef头文件中定义。是signed整型
c风格字符串标准库函数
strlen(s) 永远不要忘记字符串s结束符null;
strcpy(s1,s2) 必须确保目标字符串有足够大的空间;
strncpy(s1,s2,n) 能拷贝制定长度n的字符串,但如果n比s2中的size长度还要大,数组还是会溢出。
解决办法:采用string类型取代c风格字符串
多维数组和指针
int ia[3][4];int (*ip)[4] = ia;ip = &ia[2];
0 0
- 指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- 数组指针和指针数组
- 指针数组和数组指针
- 指针数组和数组指针
- 数组指针和指针数组
- Fiddler之makecert.exe提示Failed to acquire a security provider from issuer's centificate问题解决
- Linux学习笔记(四)--ftp文件共享
- 文件隐藏属性和特殊权限
- 分享一个链接
- SQL Server日期函数
- 数组和指针
- Linux常见错误解决
- R语言-回归分析
- logrotate
- Boost智能指针——scoped_ptr
- java好难
- 【进阶android】ListView源码分析——适配器及观察者模式
- 端序和位域的关系
- 黑马day05 Cookie技术入门&记录上次访问的时间