码迷,mamicode.com
首页 > 编程语言 > 详细

C语言复习3/9

时间:2017-03-28 10:31:42      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:数组初始化   文件   strcpy   char   自动   ati   停止   c语言   数组元素   

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函数是被操作系统调用的。实参向形参的数据传递是“值传递”,单向传递,只能由实参传给形参,而不能由形参传给实参。实参和形参在内存中有不同的存储单元,实参无法得到形参的值。

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

C语言复习3/9

标签:数组初始化   文件   strcpy   char   自动   ati   停止   c语言   数组元素   

原文地址:http://www.cnblogs.com/jianyongjohnwang/p/6528397.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!