首页 > 其他分享 >指针题2

指针题2

时间:2023-02-03 13:31:58浏览次数:32  
标签:int 补码 整型 数组 原码 指针

int main()
{
int a[5][5];
//5行5列的整型数组
//00 01 02 03 04 10 11 12 13 14 20 21 22 23 24 30 31 32 33 34 40 41 42 43 44
//| | | | | | |
// p[0] p[1] p[2] p[4] p[4][2] a[4][2]
int(*p)[4];
//整型数组指针,加一跳过四个字节
p = a;//类型不符合,会报错,但还能运行
printf("%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
//指针减去指针得到他们中间的元素个数,即-4
//%p的结果打印的是补码的直接值,把-4从原码转换成补码,按照无符号数十六进制输出
return 0;
}

标签:int,补码,整型,数组,原码,指针
From: https://blog.51cto.com/u_15736615/6035801

相关文章

  • 前缀和-差分-双指针(下)
    双指针一般解决分段的问题,即求某一段的数据的值i为指针起点,j为指针终点一种是滑动窗口,i,j一定方向相同一种是夹逼,i,j相向配合前缀和使用a[i]+....a[j]=s[j]-s[i-1]......
  • C++之智能指针
    一、为什么需要智能指针?如果在div()输入的b==0,那么就会抛出一个异常,被main()捕获,但是在Func()中new申请的资源就会因没释放而发生泄露问题,这是一种异常安全问......
  • c语言-----指针例子
    指针的基本应用#include<stdio.h>intmain(){ inta=100,b=200; int*p_1,*p_2=&b; p_1=&a; printf("a=%d\n",a); printf("*p_1=%d\n",*p_1); printf("b=%d......
  • 函数指针实现加法操作
    1doubleadd(doublex,doubley)2{3returnx+y;4}56//double(*Calulate)(double,double);//声明一个函数指针789doubleCalulate(do......
  • 指针(涉及一些底层知识)
    指针1.指针种类*一维指针**(multiply)二维或多维指针[*]指针数组(*)[]数组指针lpfn函数指针void*指针函数2.一维指针2.1概念​ 用来存放内存地址的变量......
  • 动态数组以及指针迭代器
    1#include<vector>//动态数组2#include<iostream>3usingnamespacestd;4vector<int>vec;//定义5intmain(){6intn;7cin>>n;8......
  • JDK8线上环境导出Excel报错空指针,原因是缺少相应字体
    java.lang.NullPointerExceptionatsun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)atsun.awt.FontConfiguration.readFontConfigFile(Fo......
  • 指针数组和数组指针的区别
    指针数组和数组指针的区别一、指针数组指针数组是一个数组,每个数组元素存放一个指针变量。也就是说指针数组中的每一个元素都存放一个地址,相当于一个指针变量例如:char......
  • 【双指针】LeetCode 283. 移动零
    题目链接283.移动零思路设定两个指针i和j,使用j遍历数组,将非零元素送到i的位置后i++。经过第一次循环后所有的非零数都被送到了数字前面,只需要将剩余的位置变为......
  • 【双指针】LeetCode 26. 删除有序数组中的重复项
    题目链接26.删除有序数组中的重复项思路设定两个指针i和j,使用j遍历数组,将与前项不相等的元素放到i的位置。代码、classSolution{publicintremoveDup......