上一页 1 ··· 9 10 11 12 13
  2013年3月29日
摘要: 1.main 函数在很多方面都比较特别,其中最重要的是每个 C++ 程序必须含有main 函数,且 main 函数是(唯一)被操作系统显式调用的函数。2.main 函数的返回值必须是 int 型, 该类型表示整数。3.返回类型不是 void 的函数必须返回一个值,但此规则有一个例外情况:允许主函数 main 没有返回值就可结束。 如果程序控制执行到主函数 main 的最后一个语句都还没有返回,那么编译器会隐式地插入返回 0 的语句。4.任何程序都仅有一个 main 函数的实例。main 函数不能重载。 阅读全文
posted @ 2013-03-29 15:35 毋忆典藏 阅读(624) 评论(0) 推荐(0)
  2013年3月28日
摘要: 返回引用的函数返回一个左值。因此,这样的函数可用于任何要求使用左值的地方:应用举例: 1 char &get_val(string &str, string::size_type ix) 2 { 3 return str[ix]; 4 } 5 int main() 6 { 7 string s("a value"); 8 cout << s << endl; // prints a value 9 get_val(s, 0) = 'A'; // changes... 阅读全文
posted @ 2013-03-28 22:09 毋忆典藏 阅读(713) 评论(0) 推荐(0)
摘要: 有三种常见的编程技巧确保函数的操作不超出数组实参的边界。第一种方法是在数组本身放置一个标记来检测数组的结束。 C 风格字符串就是采用这种方法的一个例子,它是一种字符数组,并且以空字符 null 作为结束的标记。处理 C风格字符串的程序就是使用这个标记停止数组元素的处理。第二种方法是传递指向数组第一个和最后一个元素的下一个位置的指针。这种编程风格由标准库所使用的技术启发而得, 在第二部分将会进一步介绍这种编程风格。第三种方法是将第二个形参定义为表示数组的大小,这种用法在 C 程序和标准化之前的 C++ 程序中十分普遍。 阅读全文
posted @ 2013-03-28 18:29 毋忆典藏 阅读(179) 评论(0) 推荐(0)
摘要: 1.问题的关键是非 const 引用形参 (第 2.5 节) 只能与完全同类型的非 const 对象关联。2.应该将不修改相应实参的形参定义为 const 引用。如果将这样的形参定义为非 const 引用,则毫无必要地限制了该函数的使用。例如,可编写下面的程序在一个 string 对象中查找一个指定的字符: 1 // returns index of first occurrence of c in s or s.size() if c isn't 2 in s 3 // Note: s doesn't change, so it should be a reference t 阅读全文
posted @ 2013-03-28 15:33 毋忆典藏 阅读(202) 评论(0) 推荐(0)
  2013年3月27日
摘要: 1 //示例代码 2 // return the greatest common divisor 3 int gcd(int v1, int v2) 4 { 5 while (v2) { 6 int temp = v2; 7 v2 = v1 % v2; 8 v1 = temp; 9 } 10 return v1; 11 } // return the greatest common divisor ... 阅读全文
posted @ 2013-03-27 14:54 毋忆典藏 阅读(176) 评论(0) 推荐(0)
  2013年3月21日
摘要: 习惯更改(养成良好的编程习惯)1.包含头文件的方式,从C语言.h的方式改为的方式2.尽量使用迭代器代替下标操作3.建议:尽量避免使用指针和数组 ,尽可能使用vector和迭代器4.采用 string 类型取代 C 风格字符串(使用标准库类型 string,除了增强安全性外,效率也提高了,因此应该尽量避免使用 C 风格字符串)5.尽量“将符号 * 紧贴着指针变量名放置”,虽然*紧贴类型名放置也是合法的5.用指针操作数组时应首先选用类似于迭代器的那种用法6.const使用时,如果等价,尽量将const放在类型后,以避免类似于typedef使用中的错误7.一般而言,应该优先使用标准库抽象类而少用语言 阅读全文
posted @ 2013-03-21 11:14 毋忆典藏 阅读(848) 评论(2) 推荐(0)
摘要: 在原本的印象里,逻辑与“&&”的两个操作数是不考虑顺序的,C++ Primer中明确指出其实不然,两个操作数有顺序而且从逻辑解析的角度来讲,这个顺序是必须的,下面是C++ Primer中摘录的几句话:“逻辑与和逻辑或操作符总是先计算其左操作数,然后再计算其右操作数。只有在仅靠左操作数的值无法确定该逻辑表达式的结果时, 才会求解其右操作数。 我们常常称这种求值策略为“短路求值(short-circuit evaluation)”。”1 string s("Expressions in C++ are composed..."); 2 string::itera 阅读全文
posted @ 2013-03-21 10:40 毋忆典藏 阅读(308) 评论(0) 推荐(0)
  2013年3月20日
摘要: 一下表格中列举出C++ Primer 中部分术语,这部分术语个人感觉较重要而且之前未曾使用或者只知道名字,在此备忘术语备忘术语名称用途头文件相关备注 | 注意事项vectorstringsize_typevectorsize_t数组、bitset、sizeofptrdiff_t存储两个指针的差值cstddef与机器相关的有符号整型互斥或位操作其实就是异或的别名,不过“互斥或”这个名字更记忆对应的运算法则,如果互斥,返回真 阅读全文
posted @ 2013-03-20 17:56 毋忆典藏 阅读(184) 评论(0) 推荐(0)
摘要: //示例代码int ia[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11}; typedef int int_array[4]; int_array *p = ia; 上例中,p是指向含有四个整型元素的一维数组的指针:简言之,p是指针,指向的是一维数组C++Primer有这么一句:对 p 进行解引用获得一个有 4 个 int 型元素的数组,通常,使用这个数组时,系统会自动将它转换为指向该数组第一个元素的指针。 阅读全文
posted @ 2013-03-20 15:18 毋忆典藏 阅读(255) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13