7-19上午刷题未知点集合

问题1

X&(X-1)是什么意思?

 

问题2

 

 

对于算法,一个是要求高效 同时 要便于识别错误

 

 

问题3

#include<iostream>

#include<stdio.h>

#include<string.h>

#include<conio.h>

 

using namespace std;

 

int main()

{

float a = 1.0f;

cout << "float a = 1.0f" << endl;

cout <<"int(a) = "<< int(a) << endl;

cout <<"&a = "<< &a << endl;

cout <<"(int&)a = "<< (int&)a << endl;

cout <<"boolalpha ((int)a == (int &)a) = "<< boolalpha << ((int)a == (int &)a) << endl;//输出什么?

cout << "\n" << endl;

float b = 0.0f;

cout << "float b = 0.0f" << endl;

cout << "int(b) = " << int(b) << endl;

cout << "&b = " << &b << endl;

cout << "(int&)b = " << (int&)b << endl;

cout << "boolalpha ((int)b == (int &)b) = " << boolalpha << ((int)b == (int &)b) << endl;//输出什么?

cin.get();

return 0;

}

 

 

问题4

 
 

 

解析:unsigned int变量赋值给unsigned char变量时会发生字节截断(3位和高于3位的将 被程序自动丢弃)。

000000f7

第二个数,也就是char* b=(char*)&a中a本身为一个uint类型的值,把它的地址赋给一个执行char类型数据的指针。char类型的长度只有一个字节,打印char类型的指针指向的值。

影响的是指针的寻址。

fffffff7

注:

&a的结果是一个指针,它的类型取决于a的类型,此处&a的类型应该是:

 

 
 

上面等价于:

 

 
 

上面的步骤就是将一个unsigned int型的指针强制转换成一个char型的指针。所以请注意:这里是char类型的指针转换,而不是char类型的转换。

这样转换后,假设a的地址是x:

 

 
 

从一个函数返回一个表达式的类型与返回类型不相同

在这种情况下返回的表达式类型自动转换成函数类型。例如:

 

 
 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_38313246/article/details/81113219