C语言指针(一)

作者: xacker | 来源:发表于2017-02-07 19:09 被阅读194次

    指针变量

    指针变量的定义: 类型名 指针变量名 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进行移动

    相关文章

      网友评论

        本文标题:C语言指针(一)

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