周立功C试题解析:指针与数组深度理解
5星 · 超过95%的资源 需积分: 10 72 浏览量
更新于2024-09-13
收藏 34KB DOC 举报
“周立功高级C试题,内部测试题,华为C语言笔试题”
在C语言编程中,理解和掌握指针、数组以及它们之间的关系至关重要。本文将针对提供的试题进行解析,并深入探讨相关知识点。
首先,让我们分析第一道题目:
```c
int arr[]={6,7,8,9,10};
int* ptr=arr;
*(ptr++)+=123;
printf("%d,%d", *ptr, *(++ptr));
```
这道题目考察的是指针操作和数组元素的修改。初始时,`ptr` 指向 `arr` 的第一个元素。`*(ptr++)+=123;` 表示先取 `ptr` 指向的值(即6),然后加上123(变为129),并将结果存回原地址,因此 `arr[0]` 变为129。接下来,`*(++ptr)` 先使 `ptr` 自增,指向 `arr[1]`(即7),然后取其值。所以输出为8,8。这是因为自增操作符 `++` 有不同的前缀和后缀形式,这里使用的是后缀自增,先使用再自增。
接下来是关于 `sizeof` 运算符的问题:
```c
char str[]="http://www.ibegroup.com/";
char *p=str;
int n=10;
```
1. `sizeof(str)`:计算字符串常量的大小,包括结束符`\0`,所以为17。
2. `sizeof(p)`:`p` 是一个指针,无论指针类型,其大小通常为4(对于32位系统)或8(对于64位系统),这里是4。
3. `sizeof(n)`:`n` 是一个 `int` 类型变量,其大小为4。
4. 在函数 `Foo` 内部,`str` 被当作一个参数传递,此时 `str` 是一个局部变量,其大小取决于指针的大小,即4。
5. `sizeof(p)`:分配了100字节的内存,但指针 `p` 本身的大小仍然是4。
`sizeof` 运算符用于计算对象的大小,对于数组,它返回数组所占的字节数;对于指针,它返回指针变量的大小;对于基本类型,如 `int`,它返回该类型的字节数。
接着是各种声明的含义:
a) `inta;`:声明一个整型变量 `a`。
b) `int*a;`:声明一个指向整型数的指针 `a`。
c) `int**a;`:声明一个指向指针的指针 `a`,该指针指向的指针又指向整型数。
d) `inta[10];`:声明一个包含10个整型数的数组 `a`。
e) `int*a[10];`:声明一个包含10个指针的数组 `a`,每个指针指向整型数。
f) `int(*a)[10];`:声明一个指向包含10个整型数数组的指针 `a`。
g) `int(*a)(int);`:声明一个指向函数的指针 `a`,该函数接受一个整型参数并返回一个整型数。
h) `int(*a[10])(int);`:声明一个包含10个函数指针的数组 `a`,每个指针指向的函数接受一个整型参数并返回一个整型数。
这些声明展示了C语言中复杂的指针和数组用法,以及函数指针的概念。理解这些概念对于编写高效且无误的C程序至关重要。
这些试题涵盖了C语言的基础和高级特性,包括指针操作、数组处理、`sizeof` 运算符的应用以及不同类型的声明。通过深入理解和实践这些题目,开发者可以提升对C语言的掌握程度,特别是对于指针的灵活运用,这对于理解和解决实际编程问题具有重要意义。
2020-01-02 上传
2020-06-27 上传
2009-06-18 上传
2013-01-10 上传
2021-06-24 上传
2021-02-08 上传
2022-11-22 上传
四夕立羽
- 粉丝: 1w+
- 资源: 273
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常