关于类型和强制类型转换的理解

#include using namespace std; int main() { char ch1 = 'Y'; int ch2 = 2; char *pch1 = &ch1; int *pch2 = &ch2; int a = 1; double b = 2.2; void *pch3 = &ch1; // void c; //非法 cout<<(int *)pch1<

 

1、void其实是一种用于语法性的类型,而不是数据类型,主要用于作为函数的参数或返回值,或者定义void指针,表示一种未知类型。

2、cout好像没有printf只能,因为地址是int型的,所以如果指针是char *型的,就需要强制类型转换成int *或者void *来输出地址值

3、void *在32位机器中占4字节,它指向那种类型,那种类型就占相应的几字节。就是说,它可以指向任何类型。

4、当void *指向char类型的变量时,不需要强制类型转换,就可以输出void *的地址。因为该地址只和void *这个指针有关。

你可能感兴趣的:(C)