当前位置:   article > 正文

C/C++中的指针使用详解_输出空指针的值

输出空指针的值

C/C++ 指针

1 什么是指针?

指针就是内存地址,所有的变量除了值之外都有相应的地址,使用&运算符可以获得变量的地址.

int main(){
	int a = 10;
	cout << "a=" << a << endl << "a的地址为" << &a << endl;
}
  • 1
  • 2
  • 3
  • 4

输出如下:

a=10
a的地址为00E8FD08
  • 1
  • 2

我们可以使用type* p_name的方式去定义一个指针,并为他赋予一个地址作为值,如下:

int main()
{
	int a = 10;
	cout << "a=" << a << endl << "a的地址为" << &a << endl;
	int* p = &a;
	int* ap;
	ap = &a;
	cout << "p=" << p << endl << "*p=" << *p << endl << "&p=" << &p << endl;
	cout << "ap=" << ap << endl << "*ap=" << *ap << endl << "&ap=" << &ap << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输出:

a=10
a的地址为00B5FE14
p=00B5FE14
*p=10
&p=00B5FE08
ap=00B5FE14
*ap=10
&ap=00B5FDFC
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这意味着如果两个指针所指向的变量是相同的,那么指针所储存的地址也是相同的.这意味着地址和变量一一对应,但是可以看见app本身的地址并不相同.

值得注意的是:所有的实际数据类型,不管是整型,浮点型,字符型,还是其他的数据类型对应的指针的值的数据类型都是一样的,都是一个代表内存地址的16进制数,不同数据类型的指针仅有所指向的变量或者常量的数据类型不同.

int main()
{
	int* ap;
	double* bp;
	float* cp;
	char* dp;
	cout << "ap:" << sizeof(ap) << "	" << "int为" << sizeof(int) << endl;
	cout << "bp:" << sizeof(bp) << "	" << "double为" << sizeof(double) << endl;
	cout << "cp:" << sizeof(cp) << "	" << "float为" << sizeof(float) << endl;
	cout << "dp:" << sizeof(dp) << "	" << "cahr为" << sizeof(char) << endl;
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

输出结果如下:

ap:4    int为4
bp:4    double为8
cp:4    float为4
dp:4    cahr为1 
  • 1
  • 2
  • 3
  • 4

可以看到无论什么类型的指针,所占的内存大小都是4字节.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/961543
推荐阅读
相关标签
  

闽ICP备14008679号