博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言复习3/9
阅读量:5124 次
发布时间:2019-06-13

本文共 1218 字,大约阅读时间需要 4 分钟。

1.C语言中定义数组的形式为:类型符  数组名[常量表达式],常量表达式中可以包括常量和符号常量,如“int a[3+5];”是合法的。不能包含变量,如“int a[n];”是不合法的。也就是说,C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。如果在被调用的函数(不包括主函数)中定义数组,其长度可以是变量或非常量表达式。如:

void func(int n){    int a[2 * n];          //合法,n的值从实参传来    .    .    .}

在调用 func 函数时,形参n从实参得到值。这种情况称为“可变长数组”,允许在每次调用func函数时,n有不同的值。但是在执行函数时,n的值是不变的,数组长度是固定的。如果指定数组为静态存储方式,则不能用“可变长数组”。如:static int a[2 * n];是不合法的。

如果在定义数值型数组时,指定了数组的长度并对之初始化,凡未被“初始化列表”指定初始化的数组元素,系统会自动把它们初始化为0,如果是字符型数组,则初始化为'\0',如果是指针型数组,则初始化为NULL,即空指针。

字符数组初始化方式:

char c[] = {"I am happy"};等同于char c[] = "I am happy";此时数组c的长度不是10,而是11。因为字符串常量的最后由系统加上一个'\0'。上面的初始化与下面的初始化等价。char c[] = {'I',' ','a','m',' ','h','a','p','p','y','\0'};而不与下面的等价:char c[] = {'I',' ','a','m',' ','h','a','p','p','y'};使用printf输出字符数组时如果采用%s的输出方式,遇到'\0'就停止输出。

字符串处理函数的头文件为string.h

2.strlen函数--测字符串长度的函数,函数值为字符串中的实际长度(不包括'\0'在内)。

3.字符数组赋值只能采用strcpy的方式,字符串比较采用strcmp(比较字典序,小写字母大于大写字母)

4.strlwr函数--转换为小写的函数

5.strupr函数--转换为大写的函数

6.所有函数都是平行的,即函数不能嵌套定义。函数间可以相互调用,但不能调用main函数。main函数是被操作系统调用的。实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。实参和形参在内存中有不同的存储单元,实参无法得到形参的值。

在函数声明中,形参名可写可不写。编译系统只关心和检查参数个数和参数类型,而不检查参数名,因为在调用函数时只要求保证实参类型与形参类型一致,而不必考虑形参名是什么。

转载于:https://www.cnblogs.com/jianyongjohnwang/p/6528397.html

你可能感兴趣的文章
s3c2440实验---定时器
查看>>
MyEclipse10安装SVN插件
查看>>
[转]: 视图和表的区别和联系
查看>>
Regular Experssion
查看>>
图论例题1——NOIP2015信息传递
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
集合体系
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
分布式锁的思路以及实现分析
查看>>
腾讯元对象存储之文件删除
查看>>
jdk环境变量配置
查看>>
安装 Express
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>