摘要: 可以这么理解: *的优先级没有[]高, 第一种情况p与[]结合,代表p是一个数组, 什么样的数组呢? int*型的数组;第二种情况是p首先和*结合,p是一个指针, 指向int [4]类型的。用typedef实现二位数组的遍历intarray 随int[4]类型的,那么p1就是指向整型数组的指针,*p1就是整型数组, 退化成整数指针类型,p1就可以看成是指针的指针。 阅读全文
posted @ 2010-04-23 22:24 霞光照耀 阅读(341) 评论(0) 推荐(1) 编辑
摘要: 这是读取s1的方式,读取时遇到第一个不是空白字符开始读入,直到遇到第二个空白符。 string字面值和字符串string对象并不以是同一种数据类型。 getline(cin, string1)用来输入空白字符,直到换行符结束,返回值是cin。 * string::size_type是unsigned类型,这么定义是为了与机器无关,如果定义为int型,在有的机器上int型是16位的,表示的最大长度... 阅读全文
posted @ 2010-04-18 22:16 霞光照耀 阅读(232) 评论(0) 推荐(1) 编辑
摘要: 为了避免头文件中定义的类和变量被多次引用时多次定义,C++中使用预处理器定义头文件保护符,用于避免在已经见到头文件的情况下重新处理该头文件的内容。例如在上篇文章复数例子virtual_no.h中就是典型预处理变量的定义。  预处理器变量通常大写,名字在程序中要唯一。不然程序不能分辨是否已经定义了该变量。  #ifndef 表示指示检测指定的预处理器变量是否未定义。如果预处理器变量未定义,那么跟在其... 阅读全文
posted @ 2010-04-18 21:49 霞光照耀 阅读(427) 评论(0) 推荐(0) 编辑
摘要: virtual_no.hvirtual_no.cpp在C++中一般头文件和实现要分开,头文件的定义一般写在.h中,例如本例中,我们将复数抽象成一个类,它的数据成员包括实部和虚部,复数的操作有输入、输出、加减等,都定义成友元函数, 复数的属性行为:共轭复数,复数的模都定义成成员函数,在vitual_no.h中,只声明接口,不给出具体的实现。具体的实现写在vitual_no.cpp中,通过#inclu... 阅读全文
posted @ 2010-04-17 00:33 霞光照耀 阅读(1992) 评论(0) 推荐(0) 编辑
摘要: 以上是一个最简单的C++程序,与C程序有以下不同输入输出已经不是#include<stdio.h>中的prinf和Scanf,换成了更先进的#include<iostream>中的std::cout<<和std::cin>>,支持流输入C++新标准定义了一系列的标准库放在std中,在头部加上using namespace std;就可以不用std::... 阅读全文
posted @ 2010-04-17 00:05 霞光照耀 阅读(195) 评论(0) 推荐(0) 编辑