C/C++知识点之C语言笔试常考知识点
小标 2018-12-03 来源 : 阅读 1536 评论 0

摘要:本文主要向大家介绍了C/C++知识点之C语言笔试常考知识点,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

本文主要向大家介绍了C/C++知识点之C语言笔试常考知识点,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。

1. const 关键字

    a)  const int a;
    b)  int const a;
    c)  const int *a;
    d)  int * const a;
    e)  int const * const a;
解析:
    a)  a为一个int型变量,在它被定义时就应当对其初始化,因为以后就没有机会再去改变它了。
    b)  与 a) 是一个意思,const 与 int 的位置可以互换。
    c)  const 与 int 修饰的都是 (*a) ,这里的a是一个指向 int 型变量的指针,指针 a 的值可以被修改,(*a) 即 a 指向的变量不能被修改。
    d)  const 修饰 a, 而int 修饰 (*a) ,这里的a是一个指向 int 型变量的指针,指针 a 的值不能被修改,(*a) 即 a 指向的变量可以被修改。 
    e)  指针 a 的值与 (*a)即a指向的变量均不能被修改。
总结:
    1)  如果 const 与 int 是挨在一起的,中间没有*,则两者的位置是可以互换的。
    2)  如果 const 或是 int 之后是*,则 const 或是 int 修饰的是(*a),即修饰的是指针 a 指向的变量。
 
2. (*((void (*)( ))0x80004000)) ( )
解析:
    先看 (void (*)( ))0x80004000 。
    其中的 void (*)( ) 是函数指针类型,该函数的形参为空,返回值类型为 void 。
    于是,(void (*)( ))0x80004000 就是表示,将 0x80004000 强制转换为 void (*)( ) 类型的函数指针。也就是说,以0x80004000为起始地址的4个字节的存储区域内(假定为32位平台),存放是的一个函数的入口地址,这个函数的形参为空,返回值类型为 void。
    然后,请回忆一下 (*p)() 是什么意思?没错,这是用函数指针调用函数的形式。
    那么,(*((void (*)( ))0x80004000)) ( ) 就是表示,调用某一个函数, 该函数的入口地址存放在以0x80004000为起始地址的4个字节的存储区域内(假定为32位平台),该函数的形参为空,无返回值。
 
3. void * ( * (*fp1)(int))[10]; 
    float (*(* fp2)(int,int,int))(int);
    int (* ( * fp3)())[10]();
    分别表示什么意思? 解析:                                                           
    1. void * ( * (*fp1)(int))[10];   fp1是一个指针,指向一个函数,这个函数的参数为int型,函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素,每个元素是一个void*型指针。
    2. float (*(* fp2)(int,int,int))(int);   fp2是一个指针,指向一个函数,这个函数的参数为3个int型,函数的返回值是一个指针,这个指针指向一个函数,这个函数的参数为int型,函数的返回值是float型。 
    3. int (* ( * fp3)())[10]();   fp3是一个指针,指向一个函数,这个函数的参数为空,函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素,每个元素是一个指针,指向一个函数,这个函数的参数为空,函数的返回值是int型。 
 
4. 有关指针的数据类型的小结

定义
含义

int i;
定义整型变量i

int *p;
p为指向整型数据的指针变量

int a[n];
定义整型数组a,它有n个元素

int *p[n];
定义指针数组p,它由n个指向整型数据的指针元素组成

int (*p)[n];
p为指向含n个元素的一维数组的指针变量,每一个元素均为整型数据

int (*p)[n]();

p为指向含n个元素的一维数组的指针变量,每一个元素均为一个函数指针,该函数无形参,返回int型数据

int f();
f为带回整型数值的函数

int *p();
p为带回一个指针的函数,该函数指向整型数据

int (*p)();
p为指向函数的指针,该函数返回一个整型数据

int **p;
p为一个指针变量,它指向一个指向整型数据的指针变量

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved