先上代码:
1 # include "iostream" 2 # include "string" 3 //# define BYTE char//注意,这里没有分号,且#只能放在函数外面. 4 int main() 5 { 6 using namespace std; 7 typedef char BYTE;//采用typedef 也可以定义别名,但是可以放在函数内部,一般情况,使用typedef是一种最佳选择. 8 typedef double num; 9 string word = "?ate";//直观的理解,更像是string 类型的数据,即Word 是一个string类型的数据. 10 for (char ch = 'a'; word != "mate"; ch++) 11 { 12 cout << word << endl; 13 word[0] = ch;//使用string类可以更方便使用序号来访问具体的字符. 14 } 15 cout << "After loop ends,word is" << word << endl; 16 //////////////////////////////////// 17 BYTE a{'a'};//使用define 定义别名,可以使得我们定义的变量更为有意义。 18 cout << a<<endl; 19 cout << "the int is:" << int(a) << endl;//采用强制型转换能够将字符打印成对应的ASCII. 20 /////////////////////////////////////// 21 int*c, b=5;//注意,b并不是被定义成了int*指针型,而是被定义成了int型. 22 cout <<"b is :"<< b << endl; 23 ////////////////////////// 24 num prices[5]{4.99, 10.99, 6.87, 7.09, 8.49};//c++11。新增的一种基于范围的for循环,x可以访问prices所有的元素,其实很类似于python。 25 for (num x : {2,1,2,4}) //这种循环主要用于各种模板容器 26 cout << x << endl; 27 ////////////////// 28 system("pause"); 29 return 0; 30 }
总结:
1 使用字符串时,使用string类比使用字符数组,或者指针的方式更优,string 类包含在头文件string中
2 使用typedef newname alliname 的方式,可以重命名原来的类型(如char),这样方便程序的可读性.使用#define 也可以.
3 int * a,b; b不是指针类型,而是整型;
4 c++11标准中新增了一个基于范围的for 循环.
5 当看到一个字符串时,比如"name",我们应该将字符串常量当成一个指针,而不是当成字符串本身。这一点十分重要.比如如果我们将一个指针变量 int*a; a=="name"是没有问题的,他比对的不是字符串,而是字符串所在的地址.