C/C++

三十四、关系运算符>逻辑运算符(特别低)

三十五、C++中标准输入输出流

       cin,C++编程语言互换流中的标准输入流。

       cout,C++编程语言互换流中的标准输出流。

       cerr,C++预定义的标准错误输出函数,作用就是直接将参数(错误信息)打印到屏幕上。

       Cfile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接的通过派生类支持文本文件和内存文件。

三十六、       要实现将结构体数组student的所有元素写到文件fp中,只需要保证写到文件中的字节数为50*sizeof(struct st)即可。

       sizeof是操作符,在编译阶段就获得结果。

       strlen是函数调用,在运行阶段获得值。

       sizeof(float)返回值是一个整型,在编译阶段就被整型替代了,所以这是一个整型表达式。

三十七、

  1. 指针函数:指带指针的函数,即本质是一个函数,返回类型是某一类型的指针。

int *f(x,y)

首先,他是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。

  1. 函数指针:是指向函数的指针变量,即本质是一个指针变量。

int (*f) (int x);         /*声明一个函数指针*/

f=func;                  /*将func函数的首地址赋给指针*/

       指向函数的指针包含了函数的地址的入口地址,可以通过它来调用函数。生命格式如下:

类型说明符*(函数名)(参数)

其实这里不能称为函数名,应该叫做指针的变量名。这个特殊的指针指向一个返回整型值的函数。指针的声明和它指向函数的声明保持一致。

三十八、

 

 

 

三十九、拷贝构造函数调用的时机:

1、 当用类的一个对象初始化该类的另一个对象时;

2、 如果函数的形参是类的对象,调用函数时,进行形参和实参结合时;

3、 如果函数的返回值是类的对象,函数执行完成返回调用者时;

4、 需要产生一个临时类对象时。

四十、当数组作为函数参数传递的时候,它就退化成指针了,传递过去的其实是数组的首地址。要求数组长度的话,可以在main函数内部求得。

四十一、

              /*函数*/

int f(unsigned int n)

{

       unsigned int m=0;

       for(m=0;n;++m)

       {

              n&=(n-1);

       }

       return m;

}

 

/* 问 f(2486)的返回值是(),答案是7 */

/*

       比较完整的答案:

       //求二进制数1的个数

       int numOfOne(x){

              int count = 0;

              while(x)

              {

                     count++;

                     x=x&(x-1);

              }

              return count;

       }

      

       求二进制中0的个数为下:

       int numOfZero(x)

       while(x+1)

       {

              count++;

              x=x|(x+1);

       }

       return count;

      

       这道题求的时候有技巧,一般都要转化为16进制,再转化为2进制,

       那么这里2486=2048+438

       已知2048=2^n,n尽管他是多少,都只能取一个1,所以只需取438中

       1的个数,再加上1就可以了。

       2486=2048+256+128+32+16+4+2 共7个1。

      

*/

四十二、

       /*请阅读以下程序,其运行结果为()  答案为YES*/

void main()

{

       char c='A';

       if('0'<=c<='9')

              printf("YES");

       else

              printf("NO");

}

 

/*

       关系运算符具有左结合性,所以('0'<=c<='9')等价于(('0'<=c)<='9')。

       因为c='A',所以('0'<=c)的值为真,即为1,1<='9'的值为真,即为1.所以输出YES。

*/

四十三、

       核心:

1、 如果const位于*的左侧,则const就用来修饰指针所指向的变量,即指针指向于常量。

2、 如果const位于*号的右侧,const就是修饰指针本身,即指针本身是常量。

posted @ 2020-06-17 11:41  烟火流沙  阅读(162)  评论(0编辑  收藏  举报