《C++ Primier Plus》02
来源:互联网 发布:淘宝售假申诉代购小票 编辑:程序博客网 时间:2024/05/22 02:14
1. 数组的动态联编和静态联编
使用数组声明来创建数组时,将采用静态联编(即数组的长度在在编译时设置),使用new[]创建数组时,将采用动态联编(即运行时为数组分配空间),长度也在行时确定。这种数组使用完后,应使用delete[]释放占用的内存。
2. 数组表示法和指针表示法
用方括号数组表示法等同于对指针解除引用。
int tacos[10];
tacos[0] meas *tacos
tacos[3] means *(tacos + 3)
指针和字符串:
程序分析:
int main(){char animal[20] = "bear";const char * bird = "wren";char * ps; cout << animal << "and";cout << bird << "\n";cout << "Enter a kind of animal:";cin >> animal;//写入的时候是从第一个字符开始的//cin >> (animal + 4);//改变写入的起始位置//输入的时候,你会发现无论是你输入了一个//比原来长的字符串还是短的字符串,cout的时候//都是新的,而不会夹杂着原来的某些字符,是不是//在输入的时候数组被清空了呢!?//实际上并不是被清空了,字符是被替换了,但是,在你输入//完成的时候会多输入一个结束字符,也就是'\0',当字符读取的时候//读到这个字符就结束了,所以,即使后面还有字符,编译器也默认没有字符了//animal = {'b','e','a','r'} ;//剩下的字符都是'\0'//输入'a'和'b'//animal = {'a','b','\0','r','\0'};这样就有了源程序输出的效果ps = animal;cout << ps<<"\n";cout << "Before using strcpy():\n";cout << animal << "at" << (int *)animal << endl;ps = new char[strlen(animal) + 1];int size = sizeof(animal) + 1 ;strcpy_s(ps,size,animal);//拷贝animal的内容到ps中cout << "after using strcpy\n";cout << animal << "at" << (int *)animal << endl;//animal的内存地址操作前后不变cout << ps << "at" << (int *)ps << endl;//内存地址与animal不同,说明是两个不同的内存区域system("pause");delete[] ps;return 0;}
0 0
- 《C++ Primier Plus》02
- C Primier Plus 第十三章 文件输入/输出
- 《C++ Primier Plus》01
- C++primier总结
- C Primier Plus 第4章 字符串和格式化的输入/输出
- C Primier Plus 第5章 运算符、表达式和语句
- C++Primier笔记第一部分 基础
- c plus plus 复习
- C plus plus 的多态性
- c plus plus socket 编程
- c plus plus 第一章练习
- C Plus Plus Env Prepare
- C plus plus sprintf用法
- 《C Primer Plus》学习笔记02
- C语言02(c primer plus第三章)
- C++ primier(四)
- C-PRIMER PLUS读书笔记
- C-PRIMER PLUS读书笔记
- 无序链表的顺序查找
- 各向异性扩散
- 进程的关系
- 完美素数 SDUT 3274
- Linux 下信号理解(一)
- 《C++ Primier Plus》02
- poj1222--EXTENDED LIGHTS OUT(高斯消元)
- 用Jasper report实现横向分栏报表
- CentOS7安装Hadoop2.7完整流程
- Meta标签中的apple-mobile-web-app-status-bar-style属性及含义
- 242-Valid Anagram
- CentOS 7 添加普通用户到sudoer
- 设计模式C++学习笔记之一(Strategy策略模式)
- 黑马程序员---hibrtnate学习笔记之又好又快的关系映射技巧