C语言积累2

来源:互联网 发布:mac定制无瑕粉底液 编辑:程序博客网 时间:2024/05/16 23:34

1 综述

在实际写代码的过程中,经常会发现自己忘记了某些C语言的小知识,因此单独写一片帖子作为一个巩固和积累。

2 在C语言中将数组清空

2.1 通过数组遍历,组个赋值为0

  1. 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举例说明:标准型

  1. void Test(void)
  2. {
  3. //定义变量
  4. unsignedint i=5;
  5.  
  6. switch(i)
  7. {
  8. case 1:
  9. printf("one\n");
  10. break;
  11.     case 10:
  12.       printf("ten\n");
  13.       break;
  14.     case 5:
  15.       printf("five\n");
  16.       break;
  17.     case 3:
  18.       printf("three\n");
  19.       break;
  20.     default:
  21.       printf("other\n");
  22.       break;
  23.   }
  24. }

资料参考: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】

0 0
原创粉丝点击