前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指针|内存和地址

指针|内存和地址

作者头像
heidsoft
发布2022-03-14 19:24:54
3780
发布2022-03-14 19:24:54
举报
文章被收录于专栏:云计算与大数据

指针

1. 声明为指针并不会改变这些表达式的求值方式。

2. 一个变量的值就是分配给这个变量的内存位置所存储的数值。

3. 变量的值就是分配给该变量的内存位置所存储的数值,即使是指针变量也一样。

4. 内存中的每个位置由一个独一无二的地址标识。

5. 内存中的每个位置包含一个值。

6. 变量名字与内存位置之间的关联不是硬件所提供的,它是由编译器为我们实现的。

所有这些变量给了我们一种更方便的方法记录地址--硬件仍然通过地址访问内存位置。

代码语言:javascript
复制
#include <stdlib.h>
#include <stdio.h>
int main(int argc, const char * argv[]) {
  int a = 112, b =-1;
  float c = 3.14;
  int *d = &a;
  float *e = &c;

  printf("a:  %d\n",a);
  printf("b:  %d\n",b);
  printf("c:  %f\n",c);
  //变量的值
  printf("*d:  %p\n",d);
  printf("*e:  %p\n",e);
  //指向地址所 存储的数值
  printf("*d ->value:  %d\n",*d);
  printf("*e ->value:  %f\n",*e);
  //变量本身所存储的地址
  printf("&d ->address:  %p\n",&d);
  printf("&e ->address:  %p\n",&e);
  return 1;
}
/**

➜  cmake13 git:(master) ✗ ./a.out 
a:  112
b:  -1
c:  3.140000
*d:  0x7ff7b44b9f5c
*e:  0x7ff7b44b9f54
*d ->value:  112
*e ->value:  3.140000
➜  cmake13 git:(master) ✗ cc main.c 
➜  cmake13 git:(master) ✗ ./a.out 
a:  112
b:  -1
c:  3.140000
*d:  0x7ff7b907ff5c
*e:  0x7ff7b907ff54
*d ->value:  112
*e ->value:  3.140000
&d ->address:  0x7ff7b907ff48
&e ->address:  0x7ff7b907ff40
➜  cmake13 git:(master) ✗ 

 */
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云数智圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档