关于指针运用的一点总结

----------------------------
int *p,q;     //此处只声明了p为一个指向整形变量的指针,q为整型变量
int* p,q;    //同上
char *string
此处string为一个指针变量。
char **strings
此处strings为一个二级指针变量
string=*strings
此处string获得了一个地址,此地址是*strings,是strings指针所指向的。
------------------------------
 二维数组arr[2][3]
 arr是指向指针的指针(指针所储存的就是地址,所以某量的指针就是某量的地址)

i行j列的值
*(*(arr+i)+j)   //arr+i是指向第i行首地址的指针,*(arr+i)即为第i行的首地址

*(*arr+3*i+j)   //所以arr为指向第0行首地址的指针,*arr为第0行首地址

*(a[i]+j)       //第i行的首地址为arr[i],则arr[0]为第0行首地址

a[i][j]
--------------------------------------
int array[10];

int *ap=array+2

此时ap代表array+2

*ap=*(array+2)=array[2]=ap[0]

*(ap+2)=*(array+4)=array[4]=ap[2]

*ap+2=array[2]+2

ap[-1]=*(ap-1)=array[1]

注意:array是个指针常量,对其进行array++运算是错误的。
------------------------------------------------
储存方式:
char keywords[]{
"do",
"for",
"if",
"register",
"return",
"switch",
"while"
};
char keywords[][9]{
"do",
"for",
"if",
"register",
"return",
"switch",
"while"
};


以上两种声明方式的储存方式不同,第一种是以连续的方式储存,第二种是以矩阵的方式储存。
-------------------------------------------------------
字符串常量实际上表示一个指针常量
例如:
   "xyz"+1     //表示y的地址

  *("xyz"+1)    //表示字符y

  "xyz"[1]      //同样表示字符y
------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值