• 程序员之---C语言细节24(段错误、类型提升、sizeof 'A')


    主要内容:段错误、类型提升、sizeof  'A'

    #include <stdio.h>
    
    int main()
    {
        union test{
            char a[10];
            int b;    
        }u;
        int *p = (int *)&(u.a[1]);  // 没有引起总线错误
        *p = 17;
        printf("%d
    ",*p);
        
    #if 0
        int *q = 0;  // 引起段错误,在linux中执行可看到段错误,在windows下执行时直接出错
        *q = 1;
    #endif
        /* 測试 */
        printf("%d
    ", sizeof 'A');  // 输出为4(或者你机器上int的长度)
                                     // 由于发生了类型提升,char 变 int
        char c1 = 'a',c2 ='b';
        char c3 = c1 + c2;       // 溢出。后值为 97+98-256 = -61  
        printf("%d %d %d
    ",c1,c2,c3);
        return 0;
    }
    
    

    输出:


  • 相关阅读:
    设计模式-代理模式
    设计模式-策略模式
    设计模式-单例模式
    优先队列
    n!中质因子个数
    计算组合数
    高精度
    memset用法
    质因子分解
    素数筛法
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/7264252.html
Copyright © 2020-2023  润新知