C++ 指针变量定义赋值
教程导读
学研发网的这篇信息学奥赛技术教程文章主要介绍了C++ 指针变量定义赋值,现在分享给大家,供学习和参考。文章包含1281字,纯文字阅读大概需要4分钟。
教程信息
学习目标
掌握指针变量定义
掌握指针变量赋值
理解教程练习代码
一、指针变量
数据在内存中的地址,称为指针,如果一个变量存储了这个数据的指针(地址),则称为指针变量。
指针变量,也是变量,和普通的变量定义格式基本一致。
只不过需要在变量名前面加上一个星号 *
指针变量存储的数据类型的地址
指针变量的定义语法是:
type *name;
比如:
int *a; //a是存储整数类型所在地址的指针变量 int b;
你可以把 int*
看成一个整体,更方便理解一些,int*
表示指针类型。
int* a; //这种写法也可以,初学者更好理解 int b;
但是,我们习惯写成 int *a
,因为 *a
的结果是 int
类型的值,对值的操作更常见。
#include <iostream> using namespace std; int main(){ int b = 100; int *a = &b; //b的地址值放到指针变量a中,叫指针变量赋值 cout << *a << endl; //取值 100 cout << a << endl; //指针变量a的值是地址 0x6ffe14(也就是b的地址) return 0; }
也就是说,针对不同的数据类型,都可以有对应的指针变量。
附录:C++数据类型
二、指针变量定义
int *p; //定义指针变量p,存放的数据是整数类型的地址
三、指针变量赋值
int b = 100; int *p; //定义指针变量p p = &b; //赋值(b的地址)给指针变量p cout << p << endl; //指针变量p的值是地址 0x6ffe14(也就是b的地址)
&
是取地址符。
四、指针变量多次赋值
int b = 100; int *p; p = &b; cout << p << endl; int c = 200; p = &c; //赋值(c的地址)给指针变量p cout << p << endl;
五、解引用
#include <iostream> using namespace std; int main(){ int b = 100; int *p = &b; cout << *p << endl; //取值 100 return 0; }
*p
的*
是解引用指针运算符,可以获取p
指向的地址中的值(也就是b)。
六、*&p
和 &*p
的区别
#include <iostream> using namespace std; int main(){ int b = 100; int *p = &b; cout << "*&p : " << *&p << endl; cout << "&*p : " << &*p << endl; return 0; }
1、*&p
是右结合的,也就是先计算&p
,得到 p 的地址,*(&p)
解引用,获取地址里对应的值,也就是b的地址;
2、&*p
也是右结合,也就是先计算*p
,进行解引用,获取p指向地址的值,也就是b,&(*p)
就是再取b的地址;
3、所以,它们得到的结果是一样的,都是b的地址。
注意:不能解引用非指针变量。
教程咨询
如果章节内容看不懂,可以联系作者。
教程总结
以上是学研发网为您提供C++ 指针变量定义赋值的全部内容,希望教程文章能够帮你了解学习C++ 指针变量定义赋值,解决所遇到的问题。 如果觉得学研发网信息学奥赛教程内容还不错,欢迎将学研发网网站推荐给身边需要的人。
教程备注
版权声明:教程内容为学研发网整理和编写,如需转载请联系站长并附上文章原始链接和原始作者信息。
手机阅读
扫描二维码推送至手机访问。
本文链接:http://www.xueyanfa.com/xinaojiaocheng/xinaocpp-94.html