首页 > 其他分享 >20241016

20241016

时间:2024-10-17 18:22:38浏览次数:3  
标签:20241016 ++ arr int 地址 偏移 parr

int arr[3] = {10,20,30};
int *parr = arr;

1. *parr、 *arr 分别代表什么

    *(parr+0) == *(arr+0) == 10 ==》取首素值
=========================================================================    
    
2. *(parr+1)、 *(arr+1)、 *parr+1、 *arr+1 分别代表什么

    *(parr+1) == *(arr+1) == 20 ==》向后偏移sizeof(int)个字节取第二个元素的值
    *parr+1 == *arr+1 == *(parr+0)+1 == *(arr+0)+1 == 10 + 1 == 11 ==》取首元素的值+1
    
=========================================================================        
3. parr++、 ++parr、 arr++、 ++arr 分别代表什么  

    parr++ ==》 先返回parr[0]的地址,再自增1,此时偏移到parr[1]的地址...
    ++parr ==》 先自增1,此时偏移到parr[1]的地址,返回的是parr[1]的地址...
    arr++、 ++arr ==》数组名是一个指针常量,不能修改!!!!!!!!!!
    
=========================================================================
4. *parr++、 *++parr、 *arr++、 *++arr 分别代表i什么

    ++ -- * 优先级相同,自右向左结合
    
    *(parr++) ==》 先计算parr++再计算* ==》parr++是后置++,先返回parr[0]的地址再自增1,偏移到parr[1]的地址 ==》 先返回了parr[0]的地址和*结合,解引用parr[0]的地址得到parr[0]中的值 ==》 但是此时parr是parr[1]的地址
      *(++parr) ==》 先计算++parr再计算* ==》 ++parr是前置++,先自增1,此时偏移到了parr[1]的地址,返回parr[1]的地址 ==》 parr[1]的地址和*结合,解引用parr[1]的地址得到parr[1]中的值 ==》 此时parr中也是parr[1]的地址
   *(arr++) == *(++arr)  ==》 数组名是一个指针常量,不能修改!!!!!!!!!!!!!
     
=========================================================================     
5. *(parr++)、 *(arr++) 分别代表什么  

    *(parr++) ==》 地址自增1,向后偏移sizeof(int)个字节后,再取值
    *(arr++)  ==》 数组名是一个指针常量,不能修改!!!!!!!!!!!!!
    
=======================================================================    
6. (*parr)++ 、(*arr)++ 分别代表什么

    (*parr)++  == (*arr)++ ==》 先取首元素的值,因为是后置++,先返回值,此时返回的是首元素的值 ==》再在首元素值的基础上自增1 ==》 parr仍然指向arr[0]

标签:20241016,++,arr,int,地址,偏移,parr
From: https://blog.csdn.net/qq_64376986/article/details/142989586

相关文章

  • 20241016每日一题洛谷P1115
    普及-洛谷P1115最大子段和读题可知需要在一段一维数组中寻找一段唯一的区间,使区间内的数和最大,即寻找和最大区间可以想到前缀和的算法假设输入数组a[n]则前缀和数组b[n]=b[n-1]+a[n]那么从什么时候开始的一段区间才能使区间内的数和最大?从前缀和数组逐步来判断这一条......
  • 20241016 模板清理
    区间DP-回文字串记\(f[i][j]\)表示把\(s[i\simj]\)变成回文,最少补几个,从\(f[i][j-1],f[i+1][j],f[i+1][j-1]\)三种情况转移过来即可。感性理解一下这样的状态定义是有最优子结构的。区间DP-合唱队肯定可以区间\(dp\),再注意到状态的转移和上一步有关,所......
  • [20241016]Oracle C functions annotations补充.txt
    [20241016]OracleCfunctionsannotations补充.txt--//网站orafun.info可以查询oraclecfunctions.CreatedbyFritsHooglandwithalittlehelpfromKamilStawiarski.--//可以通过它了解oracle内部C函数.实际上可以直接下载相关文件,在本地使用.https://gitlab.com/Frits......
  • 20241016 模拟赛总结
    期望得分:100+100+55(?)+0=255实际得分:100+100+0+0=200迷迷糊糊睡了好一会才起来打……感觉打的还行,除了T3时间太紧了,有的错误没检查出来挂分了。。T1简单线性DP。\(f_i\)表示前i个数的答案,\(g_i\)有点抽象,先假设当前在\(p\),\(a_p=i\),\(g_i\)表示的是如果\(p\)......