[C学习]数组
来源:互联网 发布:学生党淘宝鞋店铺推荐 编辑:程序博客网 时间:2024/04/30 17:58
PS:终于从基本类型进化到构造类型了.
1>类型说明符 数组名[常量];
//就是比别人多个[],常量:C不允许对数组大小作动态定义.
同时,C语言不对数组进行越界检查,
如:
char str[8];
str[0]=str[7];//对
str[0]=str[8];//越界了.在这个地址里是一个随意的数据.
2>数组初始化.定义时初始化和循环赋值.
3>数组的存储:同一个数组中的元素存放在一段连续的内存空间.
&a[i]=&a[0]+i*sizeof(类型)
--------------------------------------
二维数组
1>顺序存储,按行存放,即先在内存中先顺序存放第一行的元素,再存放第二行的元素.
---------------------------------------
字符数组
C中没有处理字符串的类型,字符串存在数组中,每个字符串都有一个结束标记.\0
数组名是首地址,不能用赋值运算给字符串变量赋值.用strcpy(c1,c2);
注意:平时没有看到的.printf("%s",c); 要用c数组名,而不能用c[2];其实这个用%c就不会了.%s是整个作为一个字符串输出的.
------------------------------------------------
字符串处理函数
1>puts(字符数组)
puts每输出一个自动换行,输出时即把'/0'换成'/n',这是与printf的区别.
2>gets(字符数组)
从终端输入一个字符串到字符数组,并得到一个函数值.(?什么函数值?)
将'/n'换成'/0',与puts相对.注:可接收空格,以换行作为结束.
3>strcat(字符数组1,字符数组2)
连接两个字符串,前提是字符数组1足够大.这个可以用strcpy来实现.
过程:将第一个字符数组的结束标识'/0'去掉,即将字符串2的首地址放在第1个字符数组的'/0'中.
代码:
strcat(char *s1,char *s2)
{
s1+=strlen(s1);
while(*s1++=*s2++)//经典之处就是这里了,半点不浪费..
;
}
4>strcpy(字符数组1,字符串2)
注意:字符数组1必须写成是数组的形式.复制时连同'/0'一起复制到数组1中.还可以指定若干字符.
如:strcpy(str1,str2,2);
5>strcmp(字符串1,字符串2)
注:带返回值:0;正整数;负整数.以第一个不相同的比较结果为准.
6>strlen(字符数组)
它求出的位置上的差(对于连续地址)
测试字符串长度的函数,函数的值是字符串的实际长度,不包括'/0'在内.而sizeof()是一个运算符.
strlen(char *s)
{
char *p;//定义另一个指针来挪动位置;
for(p=s;*p;p++){}//只要P不指向结束标识,就自增
return(p-s);//P到结束标识时,P与S间的距离,就是长度
}
- [C学习]数组
- [C学习]数组
- [C学习]数组
- objective-c 学习 数组
- C语言数组学习
- C语言学习-数组
- C语言数组学习
- c/c++学习--------->数组
- [C学习]指针与数组
- [C学习]指针与数组
- [C学习]指针与数组
- [C学习]指针与数组
- [C学习]函数,指针,数组
- C语言学习笔记<数组>
- C语言学习之数组
- C++/CLI学习入门数组
- C语言学习笔记:数组
- C++Primer学习概要:数组
- JXTA HelloWorld on JXSE 2.5 【二】
- Gridview 中打开链接
- vc调用dll
- 登山机器人问题
- 寻找《JavaScript权威指南》1,语句
- [C学习]数组
- address
- 网页特效园地
- 在SQLServer下出现cmd.exe和ftp.exe的解决办法
- StringBuilder类的用法范例
- 微型嵌入式GUI(图形界面系统,Linux,DOS,uC/OS)-相关下载!
- 在异地工作这样的情况可以报在职研究生么?
- 谷歌发布内部数据语言 比XML快近100倍
- 台北出差心得4