C++C++面试

C/C++面试题

2017-07-23  本文已影响137人  ThaiLanKing

记录一些知识点比较有趣,且开发中可能涉及较多的C/C++相关面试题


- (void)test
{
    unsigned int a = 6;
    int b = -20;
    (a+b > 6) ? NSLog(@">6") : NSLog(@"<=6");
}

输出:>6

分析:b和a运算,精度会自动转为unsigned int,涉及C语言整数自动转换原则:当表达式中存在有符号类型和无符号类型时,所有的操作数都自动转换为无符号类型。


- (void)test
{
    int a[5] = {1, 2, 3, 4, 5};
    int *ptr = (int *)(&a+1);
    printf("%d, %d", *(a+1), *(ptr-1));
}

输出:2, 5

分析:*(a+1)就是a[1],*(ptr-1)就是a[4]


上一篇 下一篇

猜你喜欢

热点阅读