美文网首页算法
两个月陪你刷ccf(10)——指针

两个月陪你刷ccf(10)——指针

作者: 二向砸 | 来源:发表于2020-01-27 19:08 被阅读0次

①简单介绍:

指针,初学者永远的痛,这玩意儿一直到我后来学了计算机组成原理才算真正搞懂,有时候不懂硬件真的会对代码的理解有深刻的影响。

简单来说,指针就是变量的地址。计算机通过指针来找到变量然后使用。

指针是一个unsigned类型的整数。

指针变量就是用来存放各种指针的变量,有两种定义方法:

int* p;//建议用这种,地址赋给的是p不是*p,*p是用来找地址对应的变量的!详情见下文代码

int *p;

给指针变量赋值:

int a;

int*p=&a;

#include<stdio.h>

int main(){

int a;

int* p=&a;

a=12;

printf("%d\n",*p);

return0;}

结果:

注意:p保存的是地址,*p保存的是地址中存放的元素。

#include<stdio.h>

int main(){

int a;

int* p=&a;

*p=12;

printf("%d\n",a);

return0;}

结果:

指针变量的加减法就等同于地址间的加减法,比如p+1指p所指的int型变量的下一个int型变量地址。常用于数组。

②数组与指针

数组中第一个元素的地址就是数组的首地址,而C语言中,数组名也可以作为数组的首地址使用。

#include<stdio.h>

int main(){

int a[10]={1};

int* p=a;

printf("%d\n",*p);

return0;}

结果:

利用指针变量自增枚举数组中元素:

#include<stdio.h>

int main(){

int a[10]={1,2,3,4,5,6,7,8,9,10};

for(int* p=a;p<a+10;p++){

printf("%d ",*p);}

return0;}

结果:

相关文章

网友评论

    本文标题:两个月陪你刷ccf(10)——指针

    本文链接:https://www.haomeiwen.com/subject/eapethtx.html