C Primer Plus(九) -3指针简介

关于指针:
1.地址运算符:&
用来读变量的地址

scanf("%d",&a);

这条语句说:函数在一开始定义了一个变量a,并在内存中赋了值。
当键盘输入了一个数,这条语句就会寻找这个变量在内存中的地址,并赋值。
2.简介:
一般来讲:指针是指一个其数值为地址的变量。

char p;
char * fp;
fp = &p; //p在这里指的是一个变量,fp则是一个常量,这个常量的值为p的内存地址。
间接运算符(也叫取值运算符)*:用来获取常量fp为地址的变量的值。
char a;
char * fa;
char b;
fa = &a;
b = *fa;
//在这里,b == a;
//fa得到变量a的地址,*fa就把fa为地址的变量取出来,赋值给b。
//所以a == b;
指针声明:

并不是我们所想的那样简单:
pointer ptr;
因为指针指向变量的地址,变量的类型多样,因而指针的类型也应与变量类型一样才对。
所以:

int *fp;
char *fa;
float *ff;

类型标识符表明被指向变量的类型,* 表示该变量为一个指针。
eg:交换两个数:


void change(int *,int * );

int main(void){

    int a = 1,b = 2;

    change(&a,&b);

    printf("%d %d",a,b);

    return 0;
}

void change (int * a,int *  b){

    int temp = 0;

    temp = *a;

    *a = *b;
    *b = temp;
} 

通过指针,子函数可以操纵上一级函数的变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值