A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© laotang013 中级黑马   /  2015-10-21 00:07  /  884 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*指针与数组思考练习*/

#include <stdio.h>

int main(){

     /*

      int a=1;
      int b=2;
      int *p=&a;
      p=p+1;
      p-=1;
      p*=1;
      p/=1;


     1. 定义一个指针数组,并把它的值赋值给一个指针.

    int *p1=&a;
    int *p2=&b;
    int *arr[2]={p1,p2};
    int **p=arr;//需要一个二级指针类型去接收它.(指针的指针)

     */


    /*

     2.用指针实现数组(int arr[3]={1,2,3})所有元素的打印.

    int arr[3]={1,2,3};
    int *p=arr;
    int (*p1)[3]=&arr;//表示整个数组的指针.

    for (int i=0; i<3; i++) {
        //printf("%d\n",arr);
       // printf("%d\n",*(p+i));//方法一
        //printf("%d\n",p);//方法二:p==p[0+i];

        //方法三:
        printf("%d\n",(*p1));//(*p1)等效于arr;
    }

    */


    /*

     经典面试题.
     下面打印出来的结果是什么?答案:2,5
     int a[] = {1, 2, 3, 4, 5};
     int *p = (int*)(&a + 1);
     printf("%d, %d\n", *(a+1), *(p-1));

     */

    int a[] = {1, 2, 3, 4, 5};
    int *p = (int*)(&a + 1);
    printf("%d, %d\n", *(a+1), *(p-1));//整个数组的指针与数组元素的指针的区别

    return 0;
}






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马