C语言指针类型
1:只要是指针类型,不管是几级指针【带几个*】,其宽度都是4字节
2:任何数据类型【包括自己定义的结构体】前面都能加*号,表示该数据类型的一个指针
3:由于是386处理器,其数据处理的宽度都是四个字节的,所以内存的对其方式都是以四个字节为单位对其的,只是在对具体数据进行操作的时候按照具体数据类型的长度来进行操作
4:指针类型的赋值必须是完整的赋值方式,不能简写,【赋值号两端的数据类型要完全一致,即*的数量要完全一致】
5:指针类型的数据只能做加或者是减运算,其在进行自加或者自减运算时,加的是该数据类型去掉一个*后的数据类型的宽度,但如果是加或者减一个数时,其实加的是该数与该变量的类型去掉一个*号后的长度的乘积的长度
void fun(){
char ch='a';
int x=3;
int y=4;
}
该函数的反汇编代码大致如下
PUST EBP
MOVE EBP,ESP
SUP ESP,4CH;
MOV ECX,19H //无参函数的堆栈缓冲区应该是40h,但是由于该函数有三参数,所以多了C,按照基本数据类型的长度来说,char的长度是1字节,int是4字节,其长应 MOVE ESI,ESP-4CH // 该是13字节【Dh】但是由于内存的对其方式,小于4字节的数据类型,其在申请内存时也是按照四字节来申请的,只是在对具体数据进 REP SOTS 行操作时是按照数 据类型的长度来处理的。【但这里对字符数组还有一点迷惑】
C语言指针类型的更多相关文章
- C语言指针类型 强制转换
关于C语言指针类型 强制转换 引用一篇文章: C语言中,任何一个变量都必须占有一个地址,而这个地址空间内的0-1代码就是这个变量的值.不同的数据类型占有的空间大小不一,但是他们都必须有个地址,而这个 ...
- 8. Go语言—指针类型
一.指针类型介绍 普通类型,变量存的就是值,也叫值类型. 获取变量的地址,用&,比如:var a int ,获取a的地址:&a 指针类型,变量存的是一个地址,这个地址存的才是值(指针存 ...
- C语言指针转换为intptr_t类型
1.前言 今天在看代码时,发现将之一个指针赋值给一个intptr_t类型的变量.由于之前没有见过intptr_t这样数据类型,凭感觉认为intptr_t是int类型的指针.感觉很奇怪,为何要将一个指针 ...
- Swift中对C语言接口缓存的使用以及数组、字符串转为指针类型的方法
由于Swift编程语言属于上层编程语言,而Swift中由于为了低层的高性能计算接口,所以往往需要C语言中的指针类型,由此,在Swift编程语言刚诞生的时候就有了UnsafePointer与Unsafe ...
- go语言的指针类型
一.指针与引用的相关概念 什么是指针? 指针,全称为指针变量,是用来存储内存地址的一种变量.程序中,一般通过指针来访问其指向的内存地址中的内容(数据). 什么是引用? 引用,是C++中提出来的一种新的 ...
- 对于C语言复杂指针类型的分析
转载自:http://www.slyar.com/blog/complicated-point-type.html int p; p是一个普通的整型变量. int *p; 1.p与*结合,说明p是一个 ...
- C语言指针的长度和类型
本文地址:http://www.cnblogs.com/archimedes/p/point-length-type.html,转载请注明源地址. 如果考虑应用程序的兼容性和可移植性,指针的长度就是一 ...
- C语言 数组类型与数组指针类型
//数组类型与数组指针类型 #include<stdio.h> #include<stdlib.h> #include<string.h> void main(){ ...
- C语言 详解多级指针与指针类型的关系
//V推论①:指针变量的步长只与‘指针变量的值’的类型有关(指针的值的类型 == 指针指向数据的类型) //指针类型跟指针的值有关,指针是占据4个字节大小的内存空间,但是指针的类型却是各不相同的 // ...
随机推荐
- 浅谈 underscore 内部方法 group 的设计原理
前言 真是天一热什么事都不想干,这个月只产出了一篇文章,赶紧写一篇压压惊! 前文(https://github.com/hanzichi/underscore-analysis/issues/15)说 ...
- Kendall’s tau-b,pearson、spearman三种相关性的区别(有空整理信息检索评价指标)
同样可参考: http://blog.csdn.net/wsywl/article/details/5889419 http://wenku.baidu.com/link?url=pEBtVQFzTx ...
- CCF 201604-2 俄罗斯方块
题目不难,但是感觉很有意思.一开始忘了把调试信息注释掉,WA了两次... 试题编号: 201604-2 试题名称: 俄罗斯方块 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 ...
- 【好玩的前端知识】 Kube
Kube javascript tools
- 【BZOJ 3642】Phi的反函数
http://www.lydsy.com/JudgeOnline/problem.php?id=3643 因为\[\varphi(n)=\prod_i p_i^{k_i-1}(p_i-1),n=\pr ...
- windows下使用vs进行Proctocol Buffer开发(C++篇)
因工作原因接触Proctocol Buffer(protobuf),至于什么是protobuf,为何使用protobuf,我就不赘述了,百度下都是答案. 今天我介绍的是在windows下使用vs进行p ...
- jquery 使用方法
jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库.对于网页开发者来 ...
- Html页面禁止鼠标左键复制
<body leftmargin=0 topmargin=0 oncontextmenu='return false' ondragstart='return false' onselectst ...
- Webpack--自学笔记
原文--http://webpack.github.io/docs/tutorials/getting-started/ 什么是webpack? webpack是一个模块打包器.webpack把模块( ...
- Code[VS] 3123 高精度练习之超大整数乘法
FFT 做 高精度乘法 #include <bits/stdc++.h> ); struct complex { double a, b; inline complex( , ) { a ...