C语言指针(一)

指针变量

指针变量的定义: 类型名 指针变量名 eg: int q,p;
指针变量的引用: & 变量名(&是取地址运算符) * 变量名(
是取值运算符)
指针变量的初始化: 类型说明符 *指针变量名=初始地址值;
指针的运算:指针加一,数字1不再代表十进制整数1,而是一个存储单元长度,一个存储单元长度具体占有多少空间,视指针变量的基本类型而定

main()
{
  int x,y;
  int *p; //*号只起标记的作用,用来说明所定义的变量是指针变量
  x=10;
  p= &x;
  y=*p; //* 用来获取指针变量所指向变量的内容
  printf("y=%d\n",y);    
}

(1).int *p 是表示指向整形变量的指针变量 (2).p=&x 是表示通过取地址符将变量x的地址赋给指针变量

指针与数组

指针和一维数组

c语言规定,数组名代表数组的首地址。如果需要指针指向数组,直接将数组名赋予指针变量即可。

int a[6],*pa;
pa=a;等价于pa=&a[0];

用指针访问数组元素

main()
{
  int a[5],*p,i;
  p=a;
  for(i=0;i<5;i++)
  scanf("%d",a+i);
  for(i=0;i<5;i++)
  printf("%d",*(a+i));
}

a+i 表示a所指向存储单元的下一个存储单元,即a[0],a[1],a[2],a[3],a[4]
*a等价于a[0] *(a+i)等价于a[a+i] 同样a等价于&a[0];a+i等价于&a[a+i];
a是指针常量,因此不能使用a++来对a进行移动

    原文作者:xacker
    原文地址: https://www.jianshu.com/p/3b02e0c5be86
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞