一维数组是最简单的数组,其逻辑结构为线性表。一维数组必须先定义才能使用。例如:2.一维数组的初始化数组定义后,系统为其开辟所需的存储单元,但是如果未经初始化,其存储单元中的数值是不确定的,即随机数。数组元素的初值必须依次放在一对大括号内,各初值之间用逗号隔开。......
2023-10-21
用来存放字符数据的数组就是字符数组,字符数组中的每一个元素均存放一个字符。字符数组的定义方法与一般的数组定义方法类似,包括一维字符数组、二维字符数组等。
一维字符数组定义的一般形式为:
char 数组名[整型常量表达式];
二维字符数组定义的一般形式为:
char 数组名[整型常量表达式1][整型常量表达式2];
例如:char a[10];定义了一个一维字符数组a,可以存放10个字符。
又如:char b[3][20];定义了一个二维数组b,可以存放3个一维字符数组,每个一维字符数组又可以存放20个字符。
2.字符数组的初始化
字符数组初始化的方法主要有两种:使用单个字符常量序列和使用字符串常量数据。
①使用单个字符常量初始化字符数组。单个字符初始化时,将常量表中的字符依次赋值给对应的字符数组元素。
字符数组的初始化与一般数组的初始化类似,可以有完整赋值、部分赋值等情况。例如:
char a[5]={'c','h','i','n','a'};(www.chuimin.cn)
char b[10]={'c','','p','r','o','g','r','a','m','\0'};
对于字符数组a,由于最后没有'\0'字符,所以只能使用处理数组的方式进行处理;对于字符数组b,初始化数据字符序列最后有'\0'字符,所以既能够使用数组方式进行处理,也能够使用字符串方式进行处理。
②使用字符串常量初始化字符数组。使用字符串常量对字符数组进行初始化时,系统会自动在末尾加上字符串结尾符号'\0',但定义的字符数组必须提供足够的长度。在初始化时应该注意以下几点:
·字符串常量只需要提供有效字符数据。
·字符串常量不足以填满整个字符数组空间时系统会自动用'\0'字符填充。
·字符串常量数据可以使用花括号括住,也可以不使用花括号。
·如果没有指定字符数组的长度,系统自动指定为字符串常量中有效字符的个数+1。
下面是几个字符串常量初始化字符数组的示例:
char s1[80]={"New Year"};
char s2[80]="New Year";
char s3[]="New Year"; //此时字符数组的长度为9
与其他类型数组类似,字符数组名也是地址常量,字符数组不能整体操作。程序中任何试图修改数组名值的操作或者试图为数组整体赋值的操作都是错误的。
有关C语言程序设计基础(第3版)的文章
一维数组是最简单的数组,其逻辑结构为线性表。一维数组必须先定义才能使用。例如:2.一维数组的初始化数组定义后,系统为其开辟所需的存储单元,但是如果未经初始化,其存储单元中的数值是不确定的,即随机数。数组元素的初值必须依次放在一对大括号内,各初值之间用逗号隔开。......
2023-10-21
前面已经讨论了数组的输入输出,采用循环结构同样可以实现字符数组的输入输出。程序设计中常常希望将字符串作为整体进行输入输出处理,C标准库中提供了专门用于字符串输入输出的函数。字符串输入输出示例。......
2023-11-20
图4.9字符数组初始化状态③ 如果字符数组的元素个数与初值相同,可在定义时省略数组长度。图4.11程序运行结果4.字符串字符串:是用双引号括起来的字符序列,也称为字符串常量。图4.13存储状态用printf 函数以格式符%s 输出字符串时,首先按字符数组名找到数组起始地址,然后从起始地址开始逐个输出其中的字符,直到遇上字符串结束符‘\0’时为止。......
2023-10-21
图4.3二维数组编译程序将开辟3×4=12 个连续存储单元,按行连续存放数组a 的12 个元素。图4.4二维数组在存储器中的存储顺序2.二维数组的初始化二维数组初始化和一维数组初始化的方法基本相同,也可以在定义时赋以初值。不分行给二维数组所有元素赋以初值,即所有元素的初值写在同一对大括号内。......
2023-10-21
例4.16从键盘上输入一行英文字符串,判断该字符串的每一单词的第一个字母是否是大写,若不是,则改为大写字母。利用大小写对应ASCII码值之间的差值,可以很方便地完成大小写间的转换操作,如“ch[i]=ch[i]-32;”语句便实现了将小写字母转换成对应的大写字母。例4.17编写一个简单的密码程序。7438jkd你不是合法用户,不能进入本系统!例4.18从键盘上输入4个字符串,比较它们之间的大小关系,然后按从小到大的顺序存放到二维数组中并输出。......
2023-11-18
图6.3二维数组a[3][4]示意图多维数组定义的一般形式为:数据类型符数组名[常量表达式][常量表达式]…图6.4二维数组存储示意图图6.5三维数组存储示意图根据多维数组在存储器中按行存储的规则和多维数组的行列顺序可以计算出多维数组元素存储时在线性连续存储单元中的排列序号。......
2023-11-20
包括函数名的命名和类型说明、形式参数的类型说明、变量定义和语句。下面举例说明主函数和自定义函数。函数的定义是平行的,彼此相互独立,不能嵌套定义。函数的类型和函数返回值的类型应保持一致。以两个数求和为例,说明函数的定义。......
2023-10-21
“struct结构体名”为结构体数据类型名字,使用结构体类型名才能在程序中定义结构体变量。③“数据类型名结构体成员i;”指定了结构体类型中的一个结构体成员,结构体成员必须像以前的变量定义一样进行说明,成员名的命名规则与变量名相同,要符合标识符的命名原则。④结构体类型定义语句是一条完整的C语句,所以结构体类型的声明要用“;”作为结束符。......
2023-11-20
相关推荐