详解C语言中的使用(取地址符)
文章目录
- 什么是取地址符
- 使用方法
- 探测&变量的类别
- 指针变量赋值
什么是取地址符
顾名思义,就是获取当前变量的内存地址,想要获得那个变量的地址,就用&后面跟上那个变量。
使用方法
在输出的时候后面跟上变量名就行,看一下这个例子:
#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语言中的使用(取地址符)相关推荐
- C语言中 指针变量 取地址符的用法 *指针变量名的用法
文章目录 总结 Intro Code 图示 总结 众所周知,内存可以看成一个一个相邻的格子(类比Excel),而数据就存储于这些格子之中(size大的变量占用格子数多,size小就占用小).而每个格子 ...
- C语言加取址符的作用,C语言中指针和取地址符的关系
一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...
- c语言地址符作用,C语言中指针和取地址符的关系
一 概念定义: 严格说起来,应该这么讲:指针存的是地址,而&运算符是取变量的地址. 指针原理: 其实计算机中的内存就像一个个抽屉(一兆内存就相当于1百万个抽屉),每个抽屉都有一个编号,用于存放 ...
- 武林c语言,详解C语言中条件编译
预处理器提供条件编译,程序的不同部分可以在不同的条件下编译,从而产生不同的目标代码文件,这对于程序移植和调试非常有用,本文是武林技术频道小编给为大家带来的详解中条件编译,一起来了解一下吧! 通常情况, ...
- c语言 字符串 strncpy,详解c语言中的 strcpy和strncpy字符串函数使用
详解c语言中的 strcpy和strncpy字符串函数使用 strcpy 和strcnpy函数--字符串复制函数. 1.strcpy函数 函数原型:char *strcpy(char *dst,cha ...
- 详解C语言中头文件的作用
大家好,先做个自我介绍,我是天蓬,欢迎阅读本篇博文. 由于本人理解能力不是很好,阅读他人文章时,常常看得晕头晕脑,这让我很是头疼,我想,世界上一定还有和我一样的人(哈哈,不是说你么笨哦).所以,我将会 ...
- 详解C语言中的位操作运算符可以怎么用?
目录 前言 位运算符介绍 位运算符的应用 一般案例 特殊用法 前言 最近在工作中碰到C语言中的位操作运算符,然后发现自己对这一块的内容比较模糊,所以打算写一篇博文记录这个知识点,今天是3月份的最后一天 ...
- (计算机组成原理)第二章数据的表示和运算-第二节7:详解C语言中的强制类型转换
文章目录 (1)无符号数和有符号数 (2)长整数变为短整数 (3)短整数变为长整数 在学习完前面几节的内容后,相信大家对数据是如何在计算机中存储.运算的有了更加深入的认识,那么接下来我们就以更深层次的 ...
- c语言字 字符串转换成数组_C语言学习教程之详解C语言中的字符串数组
在C语言当中,字符串数组可以使用: char a[] [10]; 或者 char *a[]; 表示 第一种表示方式固定了每个字符串的最大大小.第二种没有字符串的大小限制. #include 总结 以上 ...
- c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用
指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...
最新文章
- java两二叉树相同_java – 最有效的方式来测试两个二叉树的相等性
- optionals_Java Optionals获得更具表现力的代码
- JavaScript 多级联动浮动菜单
- mysql最大述_MySQL优化(1):Mysql简述
- 修改zepto源代码,使支持wp8的ie10
- Ubuntu不能挂载移动硬盘问题Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t ntfs -o
- 手写数字识别神经网络,手写体识别 神经网络
- 政府安全资讯精选 2017年第四期:聚焦美国网络安全新动态
- 宝塔linux 搭建rtmp+ffmpeg转流直播服务器
- python的分隔符_python分隔符
- 专业技能热门配方大全
- TFHE同态库的Torus32
- PAT乙级——1034(模拟四则运算)
- VMwareWorkstation虚拟机安装Linux系统
- JS document方法
- ktc服务器装什么系统好,控创在ATCAreg;节点刀片服务器和EATX服务器板上应用了全新的六核Intelreg;Xeonreg;...
- VIEWGOOD(远古)P2P流媒体直播系统的设计与实现
- 去哪儿网人工客服电话
- winform textbox行间距调整
- 编写一个程序,将两个字符串链接起来, 结果取代第一个字符串