C语言积累2
来源:互联网 发布:mac定制无瑕粉底液 编辑:程序博客网 时间:2024/05/16 23:34
1 综述
在实际写代码的过程中,经常会发现自己忘记了某些C语言的小知识,因此单独写一片帖子作为一个巩固和积累。
2 在C语言中将数组清空
2.1 通过数组遍历,组个赋值为0
- for(i = 0; i < 4; i ++){ a[i]=0; }
2 使用内存复制函数memset
函数原型:void *memset(void *dst, int value, size_t size);
函数功能:这个函数的功能为将src上,大小为size字节的数据赋值为value。需要注意的是,该函数赋值是以字节为单位的。
头文件:#include <string.h>
清空为0的代码为:
memset( a , 0 ,sizeof( a ) );
3 switch case语句
格式如下:
switch(表达式){ case 常量表达式1:语句1; .... case 常量表达式2:语句2; default:语句;}
快速入门:根据表达式的值来执行相关的语句。
详细介绍:switch的用法是判断case后面的表达式和switch后面的表达式是否相匹配,一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇到break。
1)switch语句的判断条件可以接受 int byte char short enum,不能接受其他类型。其判断语句可以是一个变量,也可以是一个表达式。
2)case后的语句可以不用大括号,case后面必须是常量表达式,不允许是变量。
3)一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇到break(利用这一特征可以让好几个case执行统一语句)。
4)default就是如果没有符合的case就执行它,虽然它不是必须的,但是我建议加上。
3.1 举例说明:没有break
void Test(void){ //定义变量 unsigned int i=5; switch(i) { case 1: printf("one\n"); case 10: printf("ten\n"); case 5: printf("five\n"); case 3: printf("three\n"); default: printf("other\n"); }}
结果:
five
three
other
在上面的例子中,由于i等于5,和前面的两个case都不匹配,因此结果中并没有one和ten。而第三个case中5和switch中的i的值相匹配,因此会打印five,由于没有遇到break,因此就会顺序执行后面的代码,打印出three和other。
3.2举例说明:标准型
- void Test(void)
- {
- //定义变量
- unsignedint i=5;
- switch(i)
- {
- case 1:
- printf("one\n");
- break;
- case 10:
- printf("ten\n");
- break;
- case 5:
- printf("five\n");
- break;
- case 3:
- printf("three\n");
- break;
- default:
- printf("other\n");
- break;
- }
- }
资料参考:http://www.cnblogs.com/zhangjs8385/archive/2011/10/06/2200059.html 感谢这位博主的无私分享!
3.3 初始化个字符数组
3.3.1直接逐个初始化
字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素。char str[10]={ 'I',' ','a','m',' ',‘h’,'a','p','p','y'};
注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即'\0' )。
3.3.2、用字符串常量来初始化
在c语言中,将字符串作为字符数组来处理。因此可以使用字符串来初始化字符数组。char str[]={"I am happy"};
也可以省略花括号。
char str[]="I am happy";
但是,上述这种字符数组的整体赋值只能在字符数组初始化时使用,不能用于字符数组的赋值,字符数组的赋值只能对其元素一一赋值,下面的赋值方法是错误的。
char str[];
str="I am happy";//错误,字符数组的赋值只能按元素一一赋值
【END/2015-09-05】
- C语言积累2
- C语言编程积累2
- C语言积累
- C语言知识点积累
- C语言编码积累
- C语言积累
- C语言积累
- C语言技术积累
- C语言编码积累
- C语言点滴积累
- C语言积累
- C语言常犯错误积累
- C语言的知识积累
- C语言小知识点积累
- C语言文件操作积累
- C语言字符串操作积累
- c语言常用代码积累
- C语言常用知识积累
- Java并发编程:volatile关键字解析
- 怎么让Html里的一个块一直占据整个窗口的大小?
- iOS 导航栏按钮封装
- Activity跳转Flag详解
- Mysql服务启动问题
- C语言积累2
- cocos2d手游之微信分享SDK接入指南
- OC工程中添加OC静态工程
- UITabbBar的使用及属性
- mysql5.7.10 源码编译安装记录 (centos6.4)
- 浅谈android Animation Animator 的实现原理
- 初次体验remix os for PC
- iOS 忽略SIGPIPE的问题
- git命令