- 1
- 0
- 约8.09千字
- 约 49页
- 2019-05-14 发布于广东
- 举报
C语言程序设计—提高篇 返回指针值的函数举例(1) 返回指针值的函数举例(2) 指针数组 类型 *数组名[长度]; 元素是指针类型的数组 举例,char *p[4]; 注意与基类型为数组的指针区分 char (*p)[4]; 指向指针的指针 基类型为指针类型的指针 举例,char **p; 命令行参数 main函数的几种形式 int main(); int main(int argc, char *argv[]); int main(int argc, char **argv); 说明 返回值类型一般为int,也可以是其他类型 argc为命令行参数的个数 argv为命令行参数字符串数组 命令行参数包括文件名本身 命令行参数举例—echo命令 echo C Language argc == 3; argv[0] == echo; argv[1] == C; argv[2] == Language; 复杂的声明形式 复杂类型变量的声明容易混淆 指针数组和指向数组的指针 int *a[5]; int (*a)[5]; 指向函数的指针和返回指针值的函数 void (*f)(); void *f(); 过于复杂的声明形式使程序晦涩难懂,而且容易出错 可以用typedef关键字把复杂类型的变量声明用若干个容易理解的小步骤表示 分析声明形式的方法 从标识符开始,逐层分析其意义 按运算符优先级和结合方向的顺序进行 可能涉及的运算符包括 ()自左向右结合 改变结合顺序;或声明一个函数,向外一层是函数返回值类型声明 []自左向右结合 声明一个数组,向外一层是数组元素类型声明 * 自右向左结合 声明一个指针类型,向外一层是指针基类型声明 声明形式分析举例 void类型指针 定义形式 void *p; 说明 定义一个指针,但不指定它指向的数据类型 不能通过*p引用它指向的数据 void*指针可以与其他任何类型的指针相互赋值和比较,而不需要显式的强制类型转换 经常作为函数形参和返回值的类型 一个数组的元素值为指针则这个数组称为是指针数组。 指针数组是一组有序的指针的集合。 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。 指针数组说明的一般形式: 类型说明符 *数组名[数组长度] 其中类型说明符为指针值所指向的变量的类型。 例如: int *pa[3]; 表示pa是一个指针数组,它有三个数组元素, 每个元素值都是一个指针,指向整型变量。 例6:字符串排序 void sort(char *name[],int n); void print(char *name[],int n); #include string.h #include stdio.h void main() { char *name[]={ CHINA,AMERICA, AUSTRALIA, FRANCE,GERMAN}; int n=5; sort(name,n); print(name,n); } GERMAN FRANCE AUSTRALIA AMERICA CHINA name[4] name[3] name[2] name[1] name[0] 指针数组举例 void sort(char *name[],int n) { char *pt; int i,j,k; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(strcmp(name[k],name[j])0) k=j; if(k!=i) { pt=name[i]; name[i]=name[k]; name[k]=pt;} } } void print(char *name[],int n) { int i; for (i=0;in;i++) printf(%s\n,name[i]); } GERMAN FRANCE AUSTRALIA AMERICA CHINA name[4] name[3] name[2] name[1] name[0] GERMAN FRANCE AUSTRALIA AMERICA CHINA name[4] name[3] name[2] name[1] name[0] 注意: (1)不能直接进行name[k]name[j]这样的比较,因为name[k]和name[j]的值是两个地址,这里需要比较的是它们所指向的两个字符串。 (2)排序过程中并未改变字符串的存储位置,只是改变了name数组元素的值,即改变了na
您可能关注的文档
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(4).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(5).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(6).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(7).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(8).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(9).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(10).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(1).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(2).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(3).ppt
最近下载
- 室内装修工程施工组织设计方案.docx VIP
- 国家开放大学电大《知识产权法》复习题.docx VIP
- 管理的常识(陈春花).pptx VIP
- 2025-2026学年人教A版数学选择性必修第一册期末综合检测练习卷.docx VIP
- 山西省运城市永济市2026届八年级数学第一学期期末质量跟踪监视试题含解析.doc VIP
- Nikon 尼康轻便型数码照相机 COOLPIX ACOOLPIX A10 参考手册(完整说明书)A10RMPRC_(Sc)03.pdf VIP
- 2025年辽宁省中考数学真题卷含答案解析 .pdf VIP
- 中交第三航务工程局有限公司招聘笔试题库2023.pdf VIP
- 企业设备巡检维修多用途报表模板.doc VIP
- 《管理的常识--陈春花》.ppt
原创力文档

文档评论(0)