指针是什么
指针:一个变量的地址
指针变量:一个变量专门用来存放另一个变量的地址(即指针)
指针变量
存放地址的变量
例子:
#include<stdio.h>
int main()
{
int a=100,b=10;//定义整型变量并且初始化
int *pointer_1,*pointer_2;//定义指向整型数据的指针变量 pointer_1,pointer_2
pointer_1=&a;//变量a的地址赋值给指针pointer_1
pointer_2=&b;
printf("a=%d,b=%d\n",a,b);
printf("*pointer_1=%d,*pointer_2=%d\n",*pointer_1,*pointer_2);
return 0;
}
怎么定义指针变量:
类型名 *指针变量名;(指针变量的基类型用来制定此指针变量可以指向的变量的类型)
怎么引用指针变量
通过指针引用数组
所谓数组元素的指针就是数组元素的地址
例如:
int a[10]={,1,3,5,7,9,11,13,15,17,19}
int *p;
p=&a[0];//和p=a等价
数组名不代表整个数组,只代表数组首元素的地址 p=a的作用是把a数组的首元素的地址赋给指针变量p,而不是把数组a各元素的值赋给p
指针运算符
(1)取地址运算符&
取地址运算符&是单目运算符,其结合性为自右至左,其功能是取变量的地址。在scanf函数及前面介绍指针变量赋值中,我们已经了解并使用了&运算符。
(2)取内容运算符*
取内容运算符*是单目运算符,其结合性为自右至左,用来表示指针变量所指的变量。在*运算符之后跟的变量必须是指针变量。需要注意的是指针运算符*和指针
变量说明中的指针说明符* 不是一回事。在指针变量说明中,“*”是类型说明符,表示其后的变量是指针类型。而表达式中出现的“*”则是一个运算符用以表示指
针变量所指的变量。
main(){
int a=5,*p=&a;
printf ("%d",*p);
}
......
表示指针变量p取得了整型变量a的地址。