<<征服C指针>>学习笔记

本文介绍了C语言中的指针概念,包括指针的定义、指针变量的创建及如何通过指针操作变量。文章强调了指针类型是由其他类型派生而来的,并展示了如何使用&和*运算符来获取和解引用指针。还讨论了指针声明的正确方式,以避免声明时的歧义。

1.什么是指针?

在C语言标准中最初出现”指针”一词的部分,有这样一段话:
{
指针类型可由函数类型\对象类型\或不完全的类型派生,派生指针类型的类型称为引用类型.
指针类型描述一个对象,该类对象的值提供对该引用类型实体的引用.
由引用类型T派生的指针类型有时称为”(指向)T的指针”.
从引用类型构造指针类型的过程称为”指针类型的派生”.这些构造派生类型的方法可以递归的应用.
}

提及”类型”,我们首先想到的是”int类型”\”double类型”……同样,C中也存在”指针类型”这样的类型.
“指针类型”:
{
并不单独存在,它是由其他类型派生而成的.即实际上存在的类型是”指向int的指针类型”\”指向double的指针类型”….
也存在”指针类型变量”和”指针类型的值”.
}

2.首次接触指针.
以实际代码输出指针的值.

#include <stdio.h>

int main(void)
{
    int hoge = 5;
    int piyo = 10;
    int *hoge_p;

    //输出每个变量的地址
    printf("&hoge: %p\n", &hoge);
    printf("&piyo: %p\n", &piyo);
    printf("&hoge_p: %p\n", &hoge_p);

    //将hoge的地址赋予hoge_p
    hoge_p = &hoge;           //至此,我们认为"hoge_p指向hoge"
    printf("hoge_p: %p\n", hoge_p);

    //通过hoge_p输出hoge的内容
    printf("*hoge_p: %d\n", *hoge_p);

    //通过hoge_p修改hoge的内容
    *hoge_p = 10;
    printf("hoge: %d\n", hoge);

    return 0;
}

要点:
{
对变量使用&运算符,可取得该变量的地址.这个地址称为指向该变量的指针.
指针变量hoge_p = &hoge 时,称 hoge_p指向hoge.
对指针变量运用*运算符,等同于它指向的变量.如果hoge_p指向hoge,*hoge_p == hoge.
}

3.指针声明.

常见的C的声明像:
int hoge;
使用”类型 变量名”的形式.
而”指向int的指针”类型的变量,常采用这样的声明方法:
int *hoge_p;
这里,int* 是类型(指向int的指针类型),hoge_p为变量名,

int* hoge_p;
这种书写方式虽符合”类型 变量名”的形式,但在同时声明多个变量的情况时会出现歧义,
int* hoge_p, piyo_p;
//声明两个”指向int的指针”? ——并不是.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值