c指针加减值得问题
来源:互联网 发布:linux matlab注释乱码 编辑:程序博客网 时间:2024/06/13 15:37
(1)指针加减整数:一度很疑惑数据指针在同种机器和编译器下长度是相同的,但是不同类型指针加上同一个整数之后值却不一样。
int main(void)
{
int num;
char c ;
int * a = #
char* str= &c;
printf("%d\n", sizeof(void *));
printf("%d %d\n", sizeof(int *), sizeof(char *));
printf("%d %d\n", sizeof(a), sizeof(str));
printf("%x %x\n", a, str);
printf("%d %d\n", sizeof(*a), sizeof(*str) );
++a;
++str;
printf("%x %x\n", a, str);
return 0;
}
后来想通了,指针长度相同是存储的地址,需要同样的字节数来存储指针指向地址值。当指针加整数时目的一般是寻找指向的值而不是为了计算无用的地址值,应该是出于这种考量,c标准规定了给指针加上一个整数实际上加的数是这个整数和指针数据类型对应字节数的乘积。虽然规定为加整数就为地址加上实际的整数同样可以人为控制乘以数据类型对应字节数,但是可能这样一般并没有意义,出于简单目的,于是就有了这个顶。
减去整数同加法。
(2)两个指针相减:这样会得到两个地址的差值。通常这个差值没有什么用,但是一般可以用来判断数组中的元素顺序呢。应该出于这个用处的目的,指针差值规定为它们之间相差的“单位”数,即指向数据类型的单位数。实际计算为地址差值/sizeof(类型)。
以上的标准规定是准确的,一些想法是自己的理解,如果错了希望不要误导他人。
- c指针加减值得问题
- C语言指针的加减
- C语言指针2-指针的加减
- C语言中的指针加减偏移量
- C语言中的指针加减偏移量
- C语言中的指针加减偏移量
- C语言中的指针加减偏移量
- 指针加减时需要注意的问题
- 指针加减
- C-关于结构体变量和结构体指针变量函数传递值得问题
- C语言指针类型、指针大小、指针所指元素大小、指针加减运算
- 【C语言学习笔记】指针的“加减”运算
- 指针很值得注意的问题【转贴】
- 关于指针的加减
- 指针的加减运算
- 指针加减运算
- 指针加减操作
- 指针加减操作
- C语言数据定义长度 16位、32位、64位
- document.documentElement与document.body
- 《Xilinx可编程逻辑器件设计与开发(基础篇)》连载13:Spartan-6的BRAM(Block RAM)模块
- HDOJ-5446 Clarke and problem(DP)
- SQL Server
- c指针加减值得问题
- 一键清除Centos iptables 所有规则
- Call to undefined function curl_init()解决方法
- Hadoop分布式存储系统HDFS
- 黑马程序员---Java面向对象(上)
- 给一组数,只有两个数只出现了一次,其他所有数都是成对出现的。怎么找出这两个数。
- python3入门之类
- 野生程序员的故事
- 块设备驱动(一)