文章目录

  • 什么是取地址符
  • 使用方法
  • 探测&变量的类别
  • 指针变量赋值

什么是取地址符

顾名思义,就是获取当前变量的内存地址,想要获得那个变量的地址,就用&后面跟上那个变量。

使用方法

在输出的时候后面跟上变量名就行,看一下这个例子:

#include <stdio.h>         //头文件
#include <windows.h>struct player             //定义结构体
{int x;                 //定义变量int y;
};
char a;                     //定义变量
short b;
int c;void main()                   //程序入口
{a = 1;                    //给变量赋值b = 2;c = 3;player p = {10,20};printf("%x %x %x %x \n",&a,&b,&c,&p);    //输出变量内存地址return;                   //程序结束
}

运行结果:
内存地址输出了,我们去反汇编看一下:

注:&后只能跟变量,不能跟常量,因为常量是一个立即数,不是容器,没有地址。

探测&变量的类别

看一下代码:

#include <stdio.h>
#include <windows.h>char a;
int x = &a;void main()
{return;
}

这样运行是会报错的:
这里的意思是:没有办法把char* 转换成int,那这里x是int,&a就是char了,他在我们原来定义的类型基础上加了一个,我们在做实验,把char a改为char* a试一下:

#include <stdio.h>
#include <windows.h>char* a;
int x = &a;void main()
{return;
}

运行结果:
这里可以得出结论,如果变量类型对不上,他就会在原先变量类型的基础上加一个*

指针变量赋值

结合上面的实验,我们可以写出这段代码:

#include <stdio.h>
#include <windows.h>char x;
char* p1;
char** p2;
char*** p3;
char**** p4;void main()
{p1 = &x;      //char*p2 = &p1;       //char**p3 = &p2;      //char***p4 = &p3;     //char****return;
}

运行结果:
这样就不会报错了,这是因为我们赋的值刚好跟目标类型对应起来了。

详解C语言中的使用(取地址符)相关推荐

  1. C语言中 指针变量 取地址符的用法 *指针变量名的用法

    文章目录 总结 Intro Code 图示 总结 众所周知,内存可以看成一个一个相邻的格子(类比Excel),而数据就存储于这些格子之中(size大的变量占用格子数多,size小就占用小).而每个格子 ...

  2. C语言加取址符的作用,C语言中指针和取地址符的关系

    一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...

  3. c语言地址符作用,C语言中指针和取地址符的关系

    一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...

  4. 武林c语言,详解C语言中条件编译

    预处理器提供条件编译,程序的不同部分可以在不同的条件下编译,从而产生不同的目标代码文件,这对于程序移植和调试非常有用,本文是武林技术频道小编给为大家带来的详解中条件编译,一起来了解一下吧! 通常情况, ...

  5. c语言 字符串 strncpy,详解c语言中的 strcpy和strncpy字符串函数使用

    详解c语言中的 strcpy和strncpy字符串函数使用 strcpy 和strcnpy函数--字符串复制函数. 1.strcpy函数 函数原型:char *strcpy(char *dst,cha ...

  6. 详解C语言中头文件的作用

    大家好,先做个自我介绍,我是天蓬,欢迎阅读本篇博文. 由于本人理解能力不是很好,阅读他人文章时,常常看得晕头晕脑,这让我很是头疼,我想,世界上一定还有和我一样的人(哈哈,不是说你么笨哦).所以,我将会 ...

  7. 详解C语言中的位操作运算符可以怎么用?

    目录 前言 位运算符介绍 位运算符的应用 一般案例 特殊用法 前言 最近在工作中碰到C语言中的位操作运算符,然后发现自己对这一块的内容比较模糊,所以打算写一篇博文记录这个知识点,今天是3月份的最后一天 ...

  8. (计算机组成原理)第二章数据的表示和运算-第二节7:详解C语言中的强制类型转换

    文章目录 (1)无符号数和有符号数 (2)长整数变为短整数 (3)短整数变为长整数 在学习完前面几节的内容后,相信大家对数据是如何在计算机中存储.运算的有了更加深入的认识,那么接下来我们就以更深层次的 ...

  9. c语言字 字符串转换成数组_C语言学习教程之详解C语言中的字符串数组

    在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include 总结 以上 ...

  10. c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用

    指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...

最新文章

  1. java两二叉树相同_java – 最有效的方式来测试两个二叉树的相等性
  2. optionals_Java Optionals获得更具表现力的代码
  3. JavaScript 多级联动浮动菜单
  4. mysql最大述_MySQL优化(1):Mysql简述
  5. 修改zepto源代码,使支持wp8的ie10
  6. Ubuntu不能挂载移动硬盘问题Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t ntfs -o
  7. 手写数字识别神经网络,手写体识别 神经网络
  8. 政府安全资讯精选 2017年第四期:聚焦美国网络安全新动态
  9. 宝塔linux 搭建rtmp+ffmpeg转流直播服务器
  10. python的分隔符_python分隔符
  11. 专业技能热门配方大全
  12. TFHE同态库的Torus32
  13. PAT乙级——1034(模拟四则运算)
  14. VMwareWorkstation虚拟机安装Linux系统
  15. JS document方法
  16. ktc服务器装什么系统好,控创在ATCAreg;节点刀片服务器和EATX服务器板上应用了全新的六核Intelreg;Xeonreg;...
  17. VIEWGOOD(远古)P2P流媒体直播系统的设计与实现
  18. 去哪儿网人工客服电话
  19. winform textbox行间距调整
  20. 编写一个程序,将两个字符串链接起来, 结果取代第一个字符串

热门文章

  1. 中国裁判文书网(2020最新版)
  2. Word打开以后界面很小的问题(office办公)
  3. django 文档参考模型
  4. AC自动机(Automaton)
  5. Android自定义dialog对话框悬浮在界面上
  6. wc与xargs命令
  7. 大数据开发培训课程:Hive的静态分区与动态分区
  8. c语言表达式判断语法错误题,大连理工大学C语言模拟题机房题库单选、判断、填空(分章节_共十一章)...
  9. XDT——基于Python的XSS自动化检测工具
  10. 图解 Cisco IOS 命名规范