喝着一杯咖啡

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

1,10UL 是正确的。   1.21UL是错误的    因为U不是用于浮点数

2,字符串在c++中换行的话需要  \ 符号  

     如:  "hello   \

             how are you"

     你还可以是用""来包裹在2行的字符串

     如:  "hello"

             "how are you"

3,"two" 代表字符串   L"two" 代表宽字符串是wchar_t类型的。 原本"two""two"连个字符串拼接是没有问题。

    但是如果"two" L"two"这样的拼接是没有被c++所定义的。请不要这样是用。 

4,对象在使用前必须先声明,那么如果在一个文件中需要是用另一个文件的对象,那要怎么做用extern 关键字

    如 class1    string fileName;    class2   extern string fileName ;

    其区别在于class1,为变量分配了内存地址。 class2并没有这么做,而是让class2知道fileName存在即能是用他。

5, 什么是左值和右值? 期初我也举得奇怪,从来没听过,我太菜了。

      左值:内存地址,或是某个代表对象在内存中的位置的表达式

      右值:就是变量的值。

6, void*类型指针可以接受任意类型的指针赋值操作,但是不支持函数指针

7,1 int i,j,k;

2 int *pi=&i;
3 
4 *pi=*pi+2;//+2
5 
6 pi=pi+2;//地址+2

 

 地址+2未必有效。因为i,j,k未必是连续。

 8,c++对于字符串的处理可以使用char,string,2者在获取字符串的属性上比如长度等,都有所不同,char属于c风格,string属于class风格。c风格在获取属性上都使用c库中的方法,如,strlen(). class风格则使用size(),但是2者在执行循环获取值和copy的时候,并不是说c的就比class的快。因为c在获取length的时候需要遍历原有数组。

 

9,例子

1 const int *pic
2 
3 pic=&a;错误的
4 
5 *pic=0
6 *pic=&a;正确 

 

 10,引用int &a=b;引用必须初始化。因为引用不能在定义后指向另一个对象。

       在对引用进行赋值的时候会产生一个temp临时对象来存放值,然后用temp对原始对象进行复制,达到对引用赋值的效果。 

  1 const int a=100;

2 
3 const int &b=a;
4 
5 //以上代码被转换
6 (int temp=a;)
7 (const int &b=temp;)

 

 

11, 指针和引用的区别:

   引用总是指向一个对象,如果用引用给另一个引用赋值,那么改变的是对象的值,并不是引用的值。也就是说引用复制了一份对象。在接下来的程序中引用保存了最原始的对象内容。而原始的对象有可能进行了赋值操作已经得到改变。

   

 12,对于引用的补充:

        a,常量引用必须使用const关键字,即 const int &a=1.01;没有const的就是错的

        b,int &a=&b;是错误的,类型不符,不能把一个指针赋值给一个int类型。可以做如下修改 int &a=b; 或者 int *const &a=&b;前者是把类型统一成int,后者是把类型统一成指针

 13,enum:枚举不能迭代,枚举无法输出实际的名字,只能输出实际的int值。如果使用一个字符数组来索引ENUM还是能输出实际的string值的。

14,预先定义数组大小需要const类型。初始化数组如果使用"a"这种方式,那么其包含的是2个字符。 

 

15,vector: vector<int> v1=(10);   vector<int> v2=(&[1],&[3]);其初始化与数组不同不能{1,2}这样,要使用如同这样的vector <int> v3=(10,2);意思是,10大小,赋值都为2.

      可以定义一个空vector 如 vector<string> vs; 但是不要在这样给其赋值 vs[0]="aaa";这样是错误的。

 16,复数complex可以使用double,float,long,数组(数字),指针,引用。

17,typedef 是助记符号。如 typedef double a;    a  ab,ac;ab,ac都是double类型。也可以double ab,ac; 

18,volatile 是限定修饰符,告诉编译器,对象的值可能在编译器监视以外被改变,请不要强加优化措施。

19,pair类型。字面上是一双,一对的意思。只能包含2个元素,还是用first,和second来取值得。用typedef可以定义多个pair。简单点,不然需要反复的形成诸如<string,string> 这样的类型声明。

posted on 2010-01-08 14:46  喝着一杯咖啡  阅读(189)  评论(0)    收藏  举报