C语言学习笔记 变量类型

1.int 表示计算机CPU中寄存器的大小,所以不同的计算机及编译器得到的int类型所占字节可能不同,遇刺类似的还有long类型。

2.整数的内部表达:补码的意义就是拿不骂和原码可以加出一个溢出的“零”。-1+1=0,11111111 + 00000001 = 100000000。

  11111111被当作纯二进制看待就是255,被当作补码看待就是 -1 。

3.char既可以表示字符,也可以表示整数。C语言中用%c来进行字符的输入输出。

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     char c;
 6     scanf("%c", &c);
 7     printf("c=%d\n", c);
 8     printf("c=%c\n", c);
 9     printf("c='%c'\n", c);//%c就代表字符1
10 
11     return 0;
12 }
13 /*1
14 c = 49
15 c = 1
16 c = '1'*/
//scanf("%d %c")与scanf("%d%c")的区别
int main()
{
    int i;
    char c;
    scanf("%d %c", &i, &c);
    printf("i=%d, c=%d, c='%c'", i, c, c);

    return 0;
}
//12 a
//i = 12, c = 97, c = 'a'
//12a
//i = 12, c = 97, c = 'a'
----------------------------------------------------
int main()
{
    int i;
    char c;
    scanf("%d%c", &i, &c);
    printf("i=%d, c=%d, c='%c'", i, c, c);

    return 0;
}
//12a
//i = 12, c = 97, c = 'a'
//12 a
//i = 12, c = 32, c = ' '  读入的是空格

//字母大小写转换

int main()
{
    char c = 'a';
    char b = 'A';
    printf("c=%d, c='%c' b=%d, b='%c'\n", c, c, b, b);
    printf("'a'-'A'=%d\n", c - b);
    printf("A->a:%c\n", b + 32);
    printf("a->A:%c\n", c - 32);

    return 0;
}
//c = 97, c = 'a' b = 65, b = 'A'
//'a' - 'A' = 32
//A->a:a
//a->A : A

4. 类型转换

当运算符的两边类型不一致时,会自动转换为较大的类型。

 

自动类型转换
char->short->int->long->long long
int->float->double
对于printf,任何小于int的类型会被自动转换成int,float会被转换成double
但scanf不会,要输入short,需要%hd

强制类型转换
形式:(类型)值,比如(int10.2, (short)32
注意这时候的安全性,小的变量不总能表达大的变量,(short32768----》-32768,(char32768--》0
强制类型转换只是从那个变量计算出了一个新的类型的值,它不改变那个变量,无论是值还是类型。
强制类型转换的优先级高于四则运算。

5. bool类型

#include <stdbool.h>之后就可以使用bool和true,false

6. 逻辑运算

注意:不要把赋值,包括复合赋值组合进表达式。

条件运算符

//条件运算符优先于赋值运算符,但低于其他运算符
count = (count > 10) ? count - 10 : count + 10 相当于 if (count > 10) count = count - 10; else count = count + 10;
//不要使用嵌套的条件运算符

 

posted @ 2020-07-17 16:31  椰汁软糖  阅读(209)  评论(0编辑  收藏  举报