①简单介绍:
指针,初学者永远的痛,这玩意儿一直到我后来学了计算机组成原理才算真正搞懂,有时候不懂硬件真的会对代码的理解有深刻的影响。
简单来说,指针就是变量的地址。计算机通过指针来找到变量然后使用。
指针是一个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;}
结果:

网友评论