遇到指针不知道?
下面代码融合了指针的知识和用法!👇
#include <iostream>
using namespace std;
struct node {
int x, y;
};
int main() {
int a = 10;
int *p = &a;
/* ^-^-^-^
定义一个变量的时候 int *p : 正在定义一个指针
普通语句中 *指针 : 解引用 ( 去指针指向的内容的值 )
*/
printf ("地址:%p 值:%d\n", p, *p); //地址用%p
printf ("----------------------------------------------\n");
node b = {1, 2};
node *pnode = &b;
printf ("b结构体是 %d %d\n", b.x, b.y); // 这三行代码做的事情是一样的
printf ("b结构体是 %d %d\n", (*pnode).x, (*pnode).y);//
printf ("b结构体是 %d %d\n", pnode -> x, pnode -> y);// ( (*p).x 等价于 p -> x )
int c[10] = {1, 2, 3, 4};
p = c; //只有一个数组名时 表示它的首地址
// c 等价于 &c[0]
printf ("c数组第一个元素 %d\n", *p);
p = c + 1; //等价于 &c[1]
printf ("c数组第二个元素 %d\n", *p);
printf ("----------------------------------------------\n");
int d[10];
printf ("请输入d数组(5个值)\n");
for (int i = 1; i <= 5; i ++)
scanf ("%d", d + i);
printf ("d数组是:\n");
for (int i = 1; i <= 5; i ++)
printf ("%d ", *(d + i));
return 0;
}
运行结果是这样的👇