int char;//不行 这是不被允许的。char是一个保留字。我们不能再拿来做变量 不能超过250个字符 这在BCB里有规定。是一个可以调整的值 不能以数字开头 int 100 //不行 int lore //不行 不能夹有空格 bool do you love me;//不行 你可以用下划线代替空格 bool do you love me: //0K 不能在同一作用范围内有同名变量(仅C++) 比如 Int abc int abcd int abc;//不行 在C里,上面重复定义变量abc是被允许的 关于作用范围,我们以后会讲到。 不要和C、C++中已有的全局变量,函数,类型名取相同的名字。 double sin 这不合适。因为C库为我们提供了计算正弦值的函数,名字就叫sin; 不要太长
int char; //不行 这是不被允许的。char 是一个保留字。我们不能再拿来做变量。 不能超过 250 个字符。 这在 BCB 里有规定。是一个可以调整的值。 不能以数字开头 int 100; //不行 int 100ren; //不行 不能夹有空格 bool do you love me; //不行 你可以用下划线代替空格: bool do_you_love_me; //OK 不能在同一作用范围内有同名变量 (仅 C++) 比如: int abc; int abcd; int abc; //不行 在 C 里, 上面重复定义变量 abc 是被允许的。 关于作用范围,我们以后会讲到。 不要和 C、C++中已有的全局变量,函数,类型名取相同的名字。 double sin; 这不合适。因为 C 库为我们提供了计算正弦值的函数,名字就叫 sin; 不要太长
是的,250个字符其实太长了。如果有个变量名长达30个字母,我看不仅你自已写得累 别人看着也会觉得是在读外国小说,主人公的名字太长,烦人 不要太短 这个我们放到后面说 以上几点中,凡标为“不能”,意味如果你违反了,你的程序便会在编译时出错。而“不 要”则仅属建议内容。真要这么做,程序也没错 另外,我们还建议要为每个变量取一个有意义的名字。比如 Numberofstudents,这个变 量一看就明白是为“学生的人数”定义的。而如果定义为aa,cc,之类,就容易混淆。当 然,有一些约定成俗的用法,如字母i,j,等常用来作循环流程中的计数变量。再者,有意 义的名字并不是指一定要把变量所要代表的意思用英文句子写出,一般可以用简写,如 NumOfStudent,它同样意义明了,但更简短。而且,如果我们英文一般,那么有时也可以 使用拼音。这里就不举例了,因为笔者连拼音都很次。 前面说到取名不要太短,说的就是避免像a,cc之类的图输入方便,但毫无意义,不 可读的变量命名习惯 (你很快就会在教程中发现,笔者似乎自已违反了这个规定,用一些a,b,c作为变量名。 这不能说是笔者的错。因为会有些时候变量的意义并不重要 最后,C,C++是区要大小写的语言,所以变量Num和变量num完全是两个变量。大家 在定义,使用变量要注意到这一点。 关于变量的命名,我们不做实践。下面附加说说编程中命名的一些风格 附:关于命名变量的几种风格 较早以前,现在仍流行于UNIX、 Linux编程界,程序员喜欢用全部小写的单词来命名变 量,如果两个单词,比如 Imy car,常用的命名方法有两种: mycar或 my Car。m_car自然 看起清楚,不过输入频繁地下划线是件累事(根据指法,下划线必须使用小指头按)。后」 种方法被称为“驼峰表示法”,原因是大写字母看起来想凸起的驼峰
是的,250 个字符其实太长了。如果有个变量名长达 30 个字母,我看不仅你自已写得累, 别人看着也会觉得是在读外国小说,主人公的名字太长,烦人。 不要太短 这个我们放到后面说。 以上几点中,凡标为“不能”,意味如果你违反了,你的程序便会在编译时出错。而“不 要”则仅属建议内容。真要这么做,程序也没错。 另外,我们还建议要为每个变量取一个有意义的名字。比如 NumberOfStudents,这个变 量一看就明白是为“学生的人数”定义的。而如果定义为 aaa,cc,之类,就容易混淆。当 然,有一些约定成俗的用法,如字母 i,j,等常用来作循环流程中的计数变量。再者,有意 义的名字并不是指一定要把变量所要代表的意思用英文句子写出,一般可以用简写,如 NumOfStudent,它同样意义明了,但更简短。而且,如果我们英文一般,那么有时也可以 使用拼音。这里就不举例了,因为笔者连拼音都很次。 前面说到取名不要太短,说的就是避免像 aaa,cc 之类的图输入方便,但毫无意义,不 可读的变量命名习惯。 (你很快就会在教程中发现,笔者似乎自已违反了这个规定,用一些 a,b,c 作为变量名。 这不能说是笔者的错。因为会有些时候变量的意义并不重要) 最后,C , C ++是区要大小写的语言,所以变量 Num 和变量 num 完全是两个变量。大家 在定义,使用变量要注意到这一点。 关于变量的命名,我们不做实践。下面附加说说编程中命名的一些风格。 附:关于命名变量的几种风格。 较早以前,现在仍流行于 UNIX、Linux 编程界,程序员喜欢用全部小写的单词来命名变 量,如果两个单词,比如 my car,常用的命名方法有两种:my_car 或 myCar。my_car 自然 看起清楚,不过输入频繁地下划线是件累事(根据指法,下划线必须使用小指头按)。后一 种方法被称为“驼峰表示法”,原因是大写字母看起来想凸起的驼峰
之所以不使用 My Car,原因是C/C++允许程序自定义数据类型,所以有必要从一个名字上 很快地区分它是变量或是数据类型。方法是让自定义的数据类型都用大写开头。比如前面 的说的“马”是程序员自定的数据类型,那么如果采用这里的命名规则,则应取名为: Horse, 而“一匹白马”是变量,所以取名为: a Whi tehorse Horse aWhi tehorse 在C++ Builder里,并没有限制大家如何为变量取名。所以为了仍可以很明显的做到上 述的区分,CB的方法是对用户自定义的数据类型在前头加一个字母T(Type的首字母)。 仍如 Horse,则改名为: HOrse前面我们写 Windows版的 hello world时,使用了一个 Label 控件,其实,检查代码你会发现,它的类名就叫: TLabel 最后还有一种方法是匈牙利标记法( Hungarian notation)。该法要求在每人变量的前 面加上若干个用于表示该变量的数据类型的小写字母。如 iMy Car表示这个变量是整型(i表 示int);而倘若是 cMy Car,则表示这个变量是char类型。该法经过一段时间的训练熟悉以 后,会带来一些好处。问题是如果对自定义的数据类型也按这种方法进行,就不是经过训 练就能熟悉了。比如 hoWhi te,这个名字中的ho表示“马”,真有点强人所难。举上实际存 在的例子,在 Windows api中,如果你看到 LPCITEMIDLIST pidlRoot 想要一眼看明白 pidroot,必须的要求是你很明白 ITEMIDLIST是什么玩意儿了 是的, Windows的API使用的是最后一种方法。在大多数情况下,它的变量的名字都看 上去怪怪的 在本部教程中,我们在正式程序中,最常使用的方法是简单的“驼峰”法。 5.1.4如何初始化变量 5.1.4.1什么时候需要给变量初始化? nt a 声明了一个整型变量a。但这变量的值是多少?a等于0吗?还是等于100?我们都不知 道。“不知道”的意思是:a有值,但这个值的大小是随机的,所以我们无法确定 无法确定一个变量值是常有的事,比如我们要求用户输入他的年龄。我们需要声明一个 整型变量来存储用户年龄,但在用户输入之前,我们是无法确认它的值
之所以不使用 MyCar,原因是 C/C++允许程序自定义数据类型,所以有必要从一个名字上 很快地区分它是变量或是数据类型。方法是让自定义的数据类型都用大写开头。比如前面 的说的“马”是程序员自定的数据类型,那么如果采用这里的命名规则,则应取名为:Horse, 而“一匹白马”是变量,所以取名为:aWhiteHorse。 Horse aWhiteHorse; 在 C++ Builder 里,并没有限制大家如何为变量取名。所以为了仍可以很明显的做到上 述的区分,CB 的方法是对用户自定义的数据类型在前头加一个字母 T(Type 的首字母)。 仍如 Horse,则改名为:THorse。前面我们写 Windows 版的 hello world 时,使用了一个 Label 控件,其实,检查代码你会发现,它的类名就叫:TLabel。 最后还有一种方法是匈牙利标记法(Hungarian notation)。该法要求在每人变量的前 面加上若干个用于表示该变量的数据类型的小写字母。如 iMyCar 表示这个变量是整型(i 表 示 int);而倘若是 cMyCar,则表示这个变量是 char 类型。该法经过一段时间的训练熟悉以 后,会带来一些好处。问题是如果对自定义的数据类型也按这种方法进行,就不是经过训 练就能熟悉了。比如 hoWhite,这个名字中的 ho 表示“马”,真有点强人所难。举上实际存 在的例子,在 Windows API 中,如果你看到: LPCITEMIDLIST pidlRoot; 想要一眼看明白 pidRoot,必须的要求是你很明白 ITEMIDLIST 是什么玩意儿了。 是的,Windows 的 API 使用的是最后一种方法。在大多数情况下,它的变量的名字都看 上去怪怪的。 在本部教程中,我们在正式程序中,最常使用的方法是简单的“驼峰”法。 5.1.4 如何初始化变量 5 . 1.4.1 什么时候需要给变量初始化? int a; 声明了一个整型变量 a。但这变量的值是多少?a 等于 0 吗?还是等于 100?我们都不知 道。“不知道”的意思是:a 有值,但这个值的大小是随机的,所以我们无法确定。 无法确定一个变量值是常有的事,比如我们要求用户输入他的年龄。我们需要声明一个 整型变量来存储用户年龄,但在用户输 入之前,我们是无法确认它的值
但有些时候,我们可以事先给一个变量初始时的值。同样是年龄的问题,虽然我们不知 道用户到底几岁,但我们知道他不可能是0,所以我们把年龄一开始设为0。为什么要这 样?用户有时不小心忘了输入年龄(就像我们在网上填表一样),我们就可以检查年龄是 否为0来发现了。另外一种相反的用法是,我们发现大都数用户是8岁(比如一个小学生 入学登记表),这时我们初始化年龄变量为8,目的是为了方便用户了 那么,如果为一个变量赋值呢? 答案就像我们初中的代数:设x=10,y=100。用等号。请记住:现实生活中,等号 (=)有两个意义,但在C/C++里,=只用来给一个变量赋值 5.1.42初始化变量的两个时机 在定义时初始化变量 in t 通过一个等号,我们让a的值等于0 同时定义多个变量时也一样 int a =0, b=1. 当然也可以根据需要,只给部分变量初始化 In int a, b= 1 2.在定义以后赋值 100 5.1.4.3通过计算得到初始值
但有些时候,我们可以事先给一个变量初始时的值。同样是年龄的问题,虽然我们不知 道用户到底几岁,但我们知道他不可能是 0 ,所以我们把年龄一开始设为 0。为什么要这 样?用户有时不小心忘了输入年龄(就像我们在网上填表一样),我们就可以检查年龄是 否为 0 来发现了。另外一种相反的用法是,我们发现大都数用户是 8 岁(比如一个小学生 入学登记表),这时我们初始化年龄变量为 8,目的是为了方便用户了。 那么,如果为一个变量赋值呢? 答案就像我们初中的代数:设 x = 10, y = 100。用等号。请记住:现实生活中,等号 (=)有两个意义,但在 C/C++里,= 只用来给一个变量赋值。 5 . 1.4.2 初始化变量的两个时机 1. 在定义时初始化变量 int a = 0; 通过一个等号,我们让 a 的值等于 0; 同时定义多个变量时也一样: int a = 0, b= 1; 当然也可以根据需要,只给部分变量初始化。 int a = 0, b; 或: int a,b = 1; 2. 在定义以后赋值 int a; a = 100; 5 . 1.4.3 通过计算得到初始值