重新开始的c语言

2016-10-18  本文已影响0人  ie大博

c语言中怎样用scanf()读入带空格的字符串

#include <stdio.h>
int main()
{
    char str[128];
    scanf( "%[^\n]", str );
    printf( "%s\n", str );
    return 0;
}

c语言编译常识

int main()
{

    int a = 0x1234567;
    char *p = (char*)&a;
    //char *p = char *(&a);
    printf("*p=%d",*p);
    return 0;
}

char型的asc码的一些数值

scanf===scan formatter扫描 格式化

强制类型转换(type)

int main()

{
    int a=9;
    int b=8;
    float c=a/(float)b;////价格(float)转换了b的类型,实际上转换了8成8.0000000

    printf("c=%f",c);
    return 0;

}

位运算

原码,反码,补码

左移,右移:

案例:-3的左移2位(-3)<<2

-3的原码:1000 0000 |0000 0000 |0000 0000 |0000 0011
-3的反码:1111 1111 |1111 1111 |1111 1111 |1111 1100
-3的补码:1111 1111 |1111 1111 |1111 1111 |1111 1101
左移两位:1111 1111 |1111 1111 |1111 1111 |1111 0100
左移反码:1111 1111 |1111 1111 |1111 1111 |1111 0011
左移原码1000 0000 |0000 0000 |0000 0000 |0000 1100

案例:-3的右移两位:注意左边是以符号位补全

-3的原码:1000 0000 |0000 0000 |0000 0000 |0000 0011
-3的反码:1111 1111 |1111 1111 |1111 1111 |1111 1100
-3的补码:1111 1111 |1111 1111 |1111 1111 |1111 1101
-右移两位:1111 1111 |1111 1111 |1111 1111 |1111 1111
右移后反码:1111 1111 |1111 1111 |1111 1111 |1111 1110
右移后原码:1000 0000 |0000 0000 |0000 0000 |0000 0001

一个特殊的例子

{
    int a=1;
    int b=12;
    if(a++||b--)
    {
        printf("a=%d\n",a);///a自加1,所以打出来。
        printf("b=%d\n",b);///因为a已经成立了,
                           所以b不会自加1就进入到判断里面了,结果a=2,b=12.
    }   
    return 0;


}

unsigned的使用

int main()
{
    unsigned char a=-1;////这里的-1,它的补码存储:1111 1111,
    因为他是没有正负号,所以我们默认它为正,把补码变成原码,它就是255.
    int i=0;
    printf("a=%d",a);
    while(a>0)
    {
        a--;
        i++;
    }
        printf("a=%d",a);
        printf("i=%d",i);
    return 0;
}

用二维数组写菱形,

{   
    int i,j;
    char a=' ';
    char b='*';
    int  arr[5][5]={
                        {a,a,b,a,a},
                        {a,b,a,b,a},
                        {b,a,a,a,b},
                        {a,b,a,b,a},
                        {a,a,b,a,a},
                    };///如果arr是char型的,逗号就没办法处理
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%c",arr[i][j]);

        }
        printf("\n");
    }
    return 0;

}

continue和break

上一篇下一篇

猜你喜欢

热点阅读