C语言指针的定义及基本使用,为什么说spring让Java变得更好

char cp; / 定义一个指针变量cp,指向字符型变量 */

float * fp; /* 定义一个指针变量fp,指向实型变量 */

double *dp1, dp2; / 定义两个指针变量dp1和dp2,指向双精度实型变量 */

定义多个指针变量时,每个指针变量前面都必须加上*

指针变量的类型不是指指针变量本身的类型,而是指定它所指向的变量的数据类型。

定义指针及指针赋值

int i, *p;

p = &i;

p = 0;

p = NULL;

p = (int *) 100;

p = &i;语句中的指针p被看作是指向变量 i 或存放变量 i 的地址,也就是将指针p和变量 i 关联起来,这也是指针最常用的赋值方法。指针变量p和整型变量 i 之间的关系如下:

在这里插入图片描述

p = 0;和p = NULL;语句说明了怎样把特殊值0赋值给指针p,这时指针的值为NULL。常量NULL在系统文件stdio.h中被定义,其值为0,将他赋给指针时代表空指针。

p = (int *) 100;使用强制类型转换(int *)来避免编译错误,表示P指向地址为100的int类型变量。不建议这样使用,一般不将绝对地址赋值给指针,NULL例外。

在定义指针变量时,要注意以下几点。

  1. 指针变量名是一个标识符,要按照C标识符的命名规则对指针变量进行命名。

  2. 指针变量的数据类型是它所指向的变量的类型,一般情况下一旦指针变量的类型被确定后,他只能指向同种类型的变量。

  3. 在定义指针变量时需要使用指针声明符 * ,但指针声明符并不是指针的组成部分。例如:定义int *p;说明p是指针变量,而不是*p;

[](

)指针的基本运算

如果指针的值是某个变量的地址,通过指针就能间接访问那个变量,这些操作由取地址运算符&和间接访问运算符 * 完成。此外,相同类型的指针还能进行赋值、比较和算术运算。

1、取地址运算和间接访问运算

单目运算符 & 用于给出变量的地址。例如:

int *p, a = 3;

p = &a;

将整型变量a的地址赋给整型指针p,使指针p指向变量a。也就是说,用运算符&取变量a的地址,并将这个地址值作为指针p的值,使指针p指向变量a。

指针的类型和它所指向变量的类型必须相同。

在程序中,“ * ” 除了被用于定义指针变量外,还被用于访问指针所指向的变量,它也称为间接访问运算符。例如:但p指向a时,*p和a访问同一个存储单元,*p的值就是a的值,如下图:

在这里插入图片描述

取地址运算和间接访问运算示例。

#include<stdio.h>

int main(){

int a = 3, p; / 定义整型变量a和整型指针p */

p = &a; /* 把变量a的地址赋给指针 需要zi料+ 绿色徽【vip1024b】

p,即p指向a */

printf(“a = %d, *p = %d\n”, a, p); / 输出变量a的值和指针p说指向变量的值 */

p = 10; / 对指针p所指向的变量赋值,相当于对变量a赋值 */

printf(“a = %d, *p = %d\n”, a, *p);

printf(“请输入a的值:”);

scanf(“%d”, &a); /* 输入a */

printf(“a = %d, *p = %d\n”, a, *p);

(p)++; / 将指针所指向的变量加1 */

printf(“a = %d, *p = %d\n”, a, *p);

return 0;

}

运行结果:

在这里插入图片描述

表达式*p = *p + 1、++_p和(_p)++,都是将指针p所指向变量的值加1。而表达式_p++等价于*(p++),先取_p的值作为表达式的值,在将指针p的值加1,运算后,p不再指向变量a。如:

int a = 1, x, *p;

p = &a;

x = *p++;

总结

虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。

架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。

如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

image

人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。

如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。

[外链图片转存中…(img-F5EqWxpQ-1710346131081)]

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值