摘要: //这段代码运行有可能不报错。static char a[10]; for (int i=0;i<90;i++){ a[i]=i;}1、为了提高运行效率,不检查数组下表越界,程序就可以跑得快。因为C语言并不是一个快速开发语言,它要求开发人员保证所有逻辑的正确性。所以至少到目前为止,C语言是所有高级语言中速度最快,效率最高的。几乎所有对性能有苛刻要求的场合都使用C语言。2、不检查下标是为了给程序员更大的空间,也为指针操作带来更多的方便。如果有这个检查的话指针的功能将会大大被削弱,C的数组标识符,里面并没有包含该数组长度的信息,只包含地址信息,所以语言本身无法检查,只能通过编译器检查,而早期 阅读全文
posted @ 2013-09-11 17:32 CPYER 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过!目录 1定义一个list 2使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4用for循环来处理list中的元素 5用STL的通用算法for_each来处理list中的元素 6用STL的通用算法count_if()来统计list中的元素个数 7使用count_if()的一个更加复杂的函数对象。 8使用STL通用算法find()在list中查找对象 9使用STL... 阅读全文
posted @ 2013-09-11 17:28 CPYER 阅读(1576) 评论(0) 推荐(0) 编辑
摘要: 一般的来说,函数是可以返回局部变量的。局部变量的作用域只在函数内部,在函数返回后,局部变量的内存已经释放了。因此,如果函数返回的是局部变量的值,不涉及地址,程序不会出错。但是如果返回的是局部变量的地址(指针)的话,程序运行后会出错。因为函数只是把指针复制后返回了,但是指针指向的内容已经被释放了,这样指针指向的内容就是不可预料的内容,调用就会出错。准确的来说,函数不能通过返回指向栈内存的指针(注意这里指的是栈,返回指向堆内存的指针是可以的)。 下面以函数返回局部变量的指针举几个典型的例子来说明:1:#include char *returnStr() { char ... 阅读全文
posted @ 2013-09-11 09:51 CPYER 阅读(241) 评论(0) 推荐(0) 编辑