C语言基础备忘录

        1、C语言的缓冲区会带来一些负面影响

  • fflush(stdout); //本次输出结束后立即清空输出缓冲区
    
    int c;
    while((c = getchar()) != '\n' && c != EOF);//使用 getchar() 清空输入缓冲区
    
        scanf("%*[^\n]"); scanf("%*c"); //在下次读取前清空输入缓冲区

    2、scanf的高级用法

  • scanf("%2d", &n);//表示最多读取两位整数
    
    char str[30];
    scanf("%[abcd]", str);//表示只读取字符abcd
    scanf("%[a-zA-Z]", str);  //只读取字母
    scanf("%[^0-9]", str1);//表示读取除0-9以外的所有字符
    scanf("%[^\n]", str2);//读取一行字符串,即代替gets()函数功能,能够读取带空格的字符串
    
    /*
    %*d表示读取一个整数并丢弃;
    %*[a-z]表示读取小写字母并丢弃;
    %*[^\n]表示将换行符以外的字符全部丢弃。
    */

       3、在用 gets() 函数读取字符串的时候,有一些编译器会提示不安全,建议替换为 gets_s() 函数,就是因为 gets() 不能控制读取到的字符串的长度,风险极高。

       4、字符数组与指针字符串的区别:在内存中的存储区域不一样,字符数组存储在全局数据区或栈区,指针字符串存储在常量区。字符数组在定义后可以读取和修改每个字符,而对于指针字符串(字符串常量),一旦被定义后就只能读取不能修改。

       5、判断大小端

1) 大端模式(Big-endian)是指将数据的低位(比如 1234 中的 34 就是低位)放在内存的高地址上,而数据的高位(比如 1234 中的 12 就是高位)放在内存的低地址上。
2) 小端模式(Little-endian)是指将数据的低位放在内存的低地址上,而数据的高位放在内存的高地址上。

通过共同体判断

#include <stdio.h>
int main(){
    union{
        int n;
        char ch;
    } data;

    data.n = 0x00000001;  //也可以直接写作 data.n = 1;
    if(data.ch == 1){
        printf("Little-endian\n");
    }else{
        printf("Big-endian\n");
    }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值