C语言之数组

C语言之数组
一,一维数组
1,一维数组的定义:
类型符 数组名[常量表达式]
注:1)常量表达式中可以包括常量和符号常量.int a[3+5]是合法的,int a[n]是不合法的,C语言不允许对数组的大小作动态定义


2)如果在被调用的函数(不包括主函数)中定义数组,起长度可以是变量或非常量表达式,可称为“可变长数组”


3)如果指定数组static(静态)存储方式,则不能用“可变长数组”


2,一维数组的引用
1)数组名[下标]
2)指针


3,一维数组的初始化
1)在定义数组的时候就对其赋初值
int a[10] = {0,1,2,3,4,5,6,7,8,9}
2)对数组中的部分元素赋值
int a[10] = {0,1,2,3,4}
那么,剩余的五个元素为默认值0


注:
A,如果对数组中的所有元素都赋值为0
int a[10] = {0,0,0,0,0,0,0,0,0,0}
可以使用int a[10] = {0}进行代替
B,如果对数组的全部元素赋值,那么元素的个数是固定的,可以不指定数组的长度
int a[5] = {1,2,3,4,5}可以使用int a[] = {1,2,3,4,5}进行代替


二,二维数组
1,二维数组的定义
类型说明符 数组名[常量表达式][常量表达式]


注:
1)二维数组可以看成一个特殊的一维数组
例如 int a[3][4],a[0],a[1],a[2]看作是3个一维数组的名字
2)二维数组是按行进行存放的


2,二维数组的引用
1)数组名[下标][下标]
2)指针


3,二维数组的初始化
1)分行给所有的二维数组元素进行赋值
int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}


2)将所有的数据写在一个打括号内,按数组元素在内存中的排列顺序对各元素赋值
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}


3)对部分元素进行赋值
int a[3][4] = {{1},{2},{3}}
其余的元素值都是0


注:也可以对部分行进行赋值
int a[3][4] = {{1},{2}}
int a[3][4] = {{1},{},{3}}


4)可以对二维数组全部赋值或者部分赋值时,省略第一维的长度
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}
int a[ ][4] = {1,2,3,4,5,6,7,8,9,10,11,12}
int a[ ][4] = {{1,2,3},{},{3,4,5}}


三,字符数组
在C99标准中,把字符类型归纳为整型类型中的一种
C语言中是没有字符串类型的,字符串是存放在字符型数组中的
1,如何定义字符数组?方法与定义整形数组是一样的
char c[10];
c[0] = 'I';
c[1] = ' ';
c[2] = 'a';
.....
c[9] = 'y';
I am happy;


2,字符数组的初始化
char c[10] = {'I',' ','a','m',' ','h','a','p','p','y'}
char c[]={"I am happy"}默认添加的有'\0'字符串结束标志
char c[]="I am happy"默认添加的有'\0'字符串结束标志


四,字符串的输入输出
1,%c逐个字符输入输出
2,将整个字符串一次输入或输出 %s


五,字符串处理函数
1,puts函数----字符串输出函数
char str[] = {"china\nbeijing"}
在输出时将字符串结束标志'\0'转换成'\n',即输出完字符串后换行


2,gets函数----输入字符串函数
gets(str);
从键盘输入:
Computer
将Computer送给字符数组str,注:送给数组的共有9个字符,而不是8个字符


3,strcat函数----字符串连接函数
strcat(字符数组1,字符数组2)
把连接的结果放在了第一个字符数组中


4,strcpy和strncpy函数----字符串复制函数
char str1[10],str2[]="china";
strcpy(str1,str2);


strncpy(str1,str2,2);将str2的前两个字符复制到str1的前两个字符中


注:C中,字符串不支持直接赋值,例如
str1="china";
str2 = str1;这种赋值方式是错误的


5,strcmp函数----字符串比较函数


6,strlen函数----字符串长度函数(字符串的实际长度)


7,strlwr函数----转换为小写的函数


8,strupr函数----转换为大写的函数


在使用上面的函数时候,需要加入头文件#include<string.h>













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值