傻大方


首页 > 潮·科技 > >

强制类型转换|深入理解C语言的指针



按关键词阅读: C语言 强制类型转换 引用 函数 函数指针

强制类型转换|深入理解C语言的指针文章插图
指针是C语言的一个核心特色 , 它以一种统一方式对不同数据结构中的元素产生引用 。 对于新手来说 , 指针总是会带来很多困惑 , 但其实指针的基本概念非常简单 。 下面是一些指针和它们映射到机器代码的关键原则 。
1、每个指针都对应一个类型指针类型表明指针指向的是哪一类对象 。 比如:
int *ip;
char **cpp;
变量ip是一个指向int类型对象的指针 , 而cpp指针指向的对象自身就是一个指向char类型对象的指针 。
通常 , 如果对象类型是T , 那么指针的类型为T* 。 特殊的void *类型代表通用指针 。 比如malloc函数返回一个通用指针 , 然后通过显式强制类型转换或赋值操作的隐式强制类型转换 , 将它转换成一个有类型的指针 。
指针类型不是机器代码中的一部分 , 它是C语言提供的一种抽象 , 帮助程序员避免寻址错误 。
2、每个指针都有一个值指针的值是某个指定类型的对象的地址 。 特殊的NULL(0)值表示该指针没有指向任何地方 。
3、用“
然后可以声明一个指针fp , 将它赋值给这个函数 ,
int (*fp)(int , int *);
fp = fun;
然后就可以用这个指针来调用这个函数:
int y = 1;
int result = fp(3,
函数指针的值是该函数机器代码表示中第一条指令的地址 。
函数指针声明的语法对新手程序员比较难以理解 , 对于以下声明:
int (*f)(int*);
【强制类型转换|深入理解C语言的指针】要从里往外读 , 即从(*f)开始 , f是一个指针 , 而(*f)(int *)表明f是一个指向函数的指针 , 这个函数以一个 int *作为参数 。 最后我们看到 , 它是指向以 int *为参数并返回int的函数的指针 。
强制类型转换|深入理解C语言的指针文章插图


    稿源:(未知)

    【傻大方】网址:http://www.shadafang.com/c/111J2T602020.html

    标题:强制类型转换|深入理解C语言的指针


    上一篇:从1799元跌至1328元,发布不到半年的5G新机已加速让路

    下一篇:神经网络如何学习的?