【C语言及程序设计】指针运算符实验
程序员文章站
2022-07-16 21:26:20
...
// 指针运算符实验.cpp:
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int x, *p, *q = &x;
cin >> x;
p = &x;
cout << endl;
cout << " p = " << p << endl;
cout << " *p = " << *p << endl;
cout << " *&x = " << *&x << endl;
cout << " &*p = " << &*p << endl;
cout << " *&p = " << *&p << endl;
cout << endl;
cout << " q = " << q << endl;
return 0;
}
执行结果为
指针运算中,最令人费解的一句语法就是
int *q = &x;
因为通常我们(菜鸟)定义某个变量,或是给某个变量赋值/初始化,其余运算符都在 = 运算符右边(表达式);
然而这句中,*运算符(contents of operator/dereferencing operator)却位于 = 左边,给人的一种,*也是指针名的一部分,的错觉;
然而事实上,*是一个运算符(话说这如何同乘法运算相区别?)
所谓的*,指针运算符/间接访问运算符,我觉得还是英文名更加形象,容易理解:
contents,即内容,访问指向的变量地址,将变量单元中的内容(value)给取出来
*p 和 p = &x 两个运算实际上,获取了变量三要素中的两个(变量值、变量的储存单元),唯一不同的就只有变量名
故,*p(对 &x 执行 * 运算)又称变量 x 的别名
Youtube真是基础课学习神器啊
Introduction to Pointers in C++, Tutorial on Pointers, C++ Pointers
推荐阅读
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践9——分离各位数
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践10——分离整数和小数部分
-
【C语言及程序设计】指针运算符实验
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践11——如何买玫瑰
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践12——玩数字
-
《C语言及程序设计》实践项目11 算术运算符与算术表达式
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践10——分离整数和小数部分
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践11——如何买玫瑰
-
《C语言及程序设计初步》_1.11算术运算符与算术表达式_实践12——玩数字
-
《C语言及程序设计》实践项目11 算术运算符与算术表达式