C语言--------指针变量的基本概念:

//

//  main.c

//  指针的基本概念

//

//  Created by apple--王迅 on 15/8/23.

//  Copyright (c) 2015年 apple. All rights reserved.

//

/*

 C语言之指针

 指针:用来保存地址的一种数据类型

 */

void test1(int a2);

void  test2(int *a3);

#include <stdio.h>

 

int main(int argc, const char * argv[]) {

    /*

    //普通变量的定义:数据类型  变量名称

    int a=10;

    //1.定义 :数据类型  *指针变量名

    int  *p;

    //2.初始化指针变量

    p=&a;//将变量a的地址传给指针变量此时*p==a==10,此时可以说指针变量p指向变量a,p里面的值就是变量a的地址

    int t =*p;   //这里的*p代表获取指针变量P所指的那个存储空间(也就是a的地址)里面的内容,也就是a的值,将其赋给变量t

    printf("%d\n",a);

    printf("%d\n",*p);

    printf("%d",t);

    //注意:定义时候的  *P中的*没有任何特殊的含义,仅仅是为了表明这是一个指针变量而已,但是int t =*p,这里的*p代表获取指针变量P所指的那个存储空间里面的内容

    

    //指针变量只能在初始化后才能用

    //没有初始化后的指针属于一个野指针,

    //以下都是错误的写法

   // int *p1;

    //scanf("%d",&p1); //没有初始化就使用指针变量

   // int *p2;

   // printf("%d",*p2);//没有初始化就使用指针变量 

    */  

    //printf("-------------------------------------\n");

    //指针的作用:可以通过形参的值修改实参的值

    int a1=10;

    test1(10);

    printf("a1的值为=%d\n",a1); //10

    test2(&a1); //将a1的地址传给test2的指针变量a3

   printf("a1的值为=%d\n",a1);  //100

    return 0;

}

void test1(int a2)  //基本数据类型传递是值传递

{

    

    a2=50;

    

}

void  test2(int *a3) //a3=&a1   指针变量a3指向变量a1的存储空间

{

    *a3=100; //*a3==a1,将100赋给指针变量a3所指的那个存数空间,也就是变量a

}

 ---------------------------------------------------------------------------------------------------------------------------------------------------

posted @ 2015-08-23 23:04  王迅  阅读(389)  评论(0)    收藏  举报