【毕业设计】基于SpringBoot+Vue的中青年人员招聘平台(源码+文档+远程调试,全bao定制等)
2026/1/16 17:09:48
&取地址符 - “在哪里?”inta=10;// a 是个变量,值是 10&a// 这是 a 的地址(门牌号),比如 0x7ffeeb0b1234比喻:
a= 你家的电视机(值)&a= 你家的地址(可以找到电视机的位置)*星号 - “是什么?”int*p;// p 是一个指针,能指向 int 类型数据的地址inta=10;int*p=&a;// p 保存了 a 的地址*p=20;// 找到 p 指向的位置,把那里的值改成 20// 现在 a 变成 20 了!比喻:
p= 一张写着地址的纸条*p= 按照纸条地址去房子里拿东西(或放东西)#include<stdio.h>intmain(){inta=10;// 变量 a,值是 10int*p=&a;// p 保存了 a 的地址printf("a的值: %d\n",a);// 10printf("a的地址: %p\n",&a);// 地址1printf("p的值: %p\n",p);// 地址1(和上面一样)printf("*p的值: %d\n",*p);// 10*p=99;// 通过 p 找到 a,改成 99printf("现在a是: %d\n",a);// 99return0;}& 变量 → 地址(取地址) * 指针 → 值(解引用) 声明时:int *p → p是个指针 使用时:*p = 10 → 找到p指向的地方,放个10日常类比:
a&ap*p记住:&是取地址,*是取内容。一个往“里”看,一个往“外”看。
那么有的时候int星号p int和星号之间有的时候有空格,有的时候空格在星号和p之间,这是什么意思?
没区别!纯粹是代码风格问题,编译器完全不在乎空格在哪里。
int*p;// 常见写法:强调 *p 是一个整数int*p;// C++风格:强调 p 是一个整型指针int*p;// 中间派int*p;// 紧凑派(不推荐)// 错误理解:两个变量都是指针?int*p1,p2;// 其实只有 p1 是指针,p2 是普通整数!// 正确写法(想要两个指针):int*p1,*p2;// 两个都是指针// 更好的写法(避免混淆):int*p1;int*p2;// 分开写,清晰int *p派(C程序员常用):int*p;*p=10;// 一致:都是 *p*p这个整体是int类型*p = 10(解引用得到整数)int* p派(C++程序员常用):int*p;p=&a;// p 本身是指针类型p的类型是int*(整型指针)int*是一种类型int *p(更符合C传统)重要区别不在空格,在变量名前面的星号个数:
int*p;// 一级指针int**pp;// 二级指针(指向指针的指针)记住:编译器只看星号*在不在,不看空格在哪里。空格只是让人读起来舒服些。