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
}
---------------------------------------------------------------------------------------------------------------------------------------------------
浙公网安备 33010602011771号