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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© A侠 中级黑马   /  2015-10-3 00:34  /  676 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

指针的特点
1。指针本身也有地址,指针定义之后,自身地址不变
    但里面存的地址可以变化
********************************************************/

/********************************************************
#include<stdio.h>
int main()
{
    int a=10;
    int *p;
    p=&a;
    printf("变化前p中存储的地址%p\n",p);
    printf("变化前p自身的地址%p\n",&p);
   
   
    int b=0;
    p=&b;
    printf("变化后p中存储的地址%p\n",p);
    printf("变化后p自身的地址%p\n",&p);
    return 0;
}
********************************************************/

/********************************************************
2.指针的特点2&p指针自身地址,而p表示指针存的地址,*p表示所存地址的
    内存空间
  3.*p等效于指针p所存地址对应的空间的变量名
  4.指针不初始化不要使用
********************************************************/


/********************************************************

#include<stdio.h>
int main()
{
    int a=1;
    int *p=&a;
    int *p1[3];
    p1[1]=p;
    printf("%d",*p1[1]);
    printf("%p\n",p1[0]);
    printf("%p\n",p1[1]);
    printf("%p\n",p1[2]);

}

********************************************************/
//#include<stdio.h>
//int main()
//{
//            int a1=0;
//            int a2=1;
//            int a3=1;
//    int *p1;
//    int *p2;
//    int *p3;
//            p1=&a1;
//            p2=&a2;
//            p3=&a3;
//   
//
//    int *pp[3];
//    pp[0]=p1;
//    pp[1]=p2;
//    pp[2]=p3;
//
//    int *p[3]={&a1,&a2,&a3};
//    int *q[3]={p1,p2,p3};
//
//    printf("%p\n",p[2]);
//    printf("%p\n",q[2]);
//
//
//
//}
//
// #include

/*********************************************************
一、用指针方法编写一个程序,输入3个整数,将它们按由小到大的顺序输出
*********************************************************/


//#include<stdio.h>
//int main()
//{
//    printf("请输入三个整数并以逗号分隔\n");
//    int num;
//    int *p[3];
//    int a,b,c;
////    for(int i=0;i<3;i++)
////    {
//        scanf("%d",&num);
//        
//        p[0]=&num;
////    }
//    printf("%d",*p[0]);
////    for(int i=0;i<3;i++)
////    {
////        printf("%d",*p[i]);
////    }
//    return 0;
//   
//   
//}
//










//#include<stdio.h>
//int main()
//{
//    printf("请输入三个整数并以逗号分隔\n");
//    int num;
//    int *p[3];
//    int a,b,c;
//    int *t[3];
//    int a1,a2,a3;
//    t[0]=&a;
//    t[1]=&b;
//    t[2]=&c;
//    for(int i=0;i<3;i++)
//    {
//        scanf("%d,",&num);
//        t[i]=&num;
//        printf("%d\n",*t[i]);
//    }
//
//    return 0;
//   
//   
//}
//
//
/************************************************************

1. 编写一个使用指针的c函数,交换数组a和数组b中的对应元素

************************************************************/

//#include<stdio.h>
//void change(int *a,int *b)
//{
//    printf("交换前ab的值分别为%d\t%d\n",*a,*b);
//    int temp;
//    temp=*a;
//    *a=*b;
//    *b=temp;
//    printf("交换后ab的值分别为%d\t%d\n",*a,*b);
//   
//}
//int main()
//{
//    int *p1;
//    int *p2;
//    int a=10;
//    int b=20;
//    p1=&a;
//    p2=&b;
//    change(p1,p2);
//    return 0;
//   
//}

//
//#include<stdio.h>
//
//int bijiao(int *num1,int *num2,int *num3)
//{
//    int max=*num1>*num2?*num1:*num2;
//    max=max>*num3?max:*num3;
//    printf("%d",max);
//    return 0;
//}
//
//int main()
//{
//    int a1=1;
//    int a2=2;
//    int a3=3;
//    int *p1;
//    int *p2;
//    int *p3;
//    p1=&a1;
//    p2=&a2;
//    p3=&a3;
//   
//    bijiao(p1,p2,p3);
//}

//#include "stdio.h"
//
//void Transpose(int (*matrix)[3])
//{
//    int temp;
//    int i, j;
//   
//    for(i=1;i<3;i++)/*转置*/
//    {
//        for(j=0;j<i;j++)
//        {
//            temp = *(*(matrix+j)+i);
//            *(*(matrix+j)+i) = *(*(matrix+i)+j);
//            *(*(matrix+i)+j) = temp;
//        }
//    }
//}
//
//int main()
//{
//    int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
//    Transpose(a);
//    for(int i = 0;i<3;i++)
//    {
//        for(int j=0;j<3;j++)
//        {
//            printf("%d ",a[i][j]);
//        }
//        printf("\n");
//    }
//}








/*********************************************************

2.若有语句
int *point,
a=4;和point=&a;下面均代表地址的一组选项是_____.
a)a,point,*&a             b)&*a,&a,*point
c)*&point,*point,&a       d)&a,&*point ,point
二、C语言 用指针方法 输入3个字符串 按由小到大顺序输出

*********************************************************/
/*********************************************************

二、C语言 用指针方法 输入3个字符串 按由小到大顺序输出

*********************************************************/




#include<stdio.h>

int main()
{
    char arr[]={'a','b','c'};
    char (*p)[3];
    p=&arr;
    printf("%s",*p);
   
}

0 个回复

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