C语言积累2

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. unsigned int 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值