当前位置:   article > 正文

C语言自学笔记——数据类型

C语言自学笔记——数据类型

1、sizeof

是一个运算符,给出某个类型或变量在内存中所占据的字节数

例:sizeof(int)

        sizeof(i)

  1. #include <stdio.h>
  2. int main(){
  3. int a;
  4. a = 6;
  5. printf("sizeof(int) = %ld\n",sizeof(int)); //4个字节,32bit
  6. printf("sizeof(a) = %ld\n",sizeof(a)); //4个字节,32bit
  7. printf("sizeof(a) = %ld\n",sizeof(a++)); //sizeof是4
  8. printf("a = %d\n",a); //a还是6,因为sizeof是静态的
  9. printf("sizeof(a) = %ld\n",sizeof(a+1.0)); //sizeof是8,因为1.0是double型
  10. printf("a = %d\n",a); //a是6
  11. return 0;
  12. }

sizeof(int) = 4;        sizeof(double) = 8;        sizeof(long double) = 16;

sizeof是静态的

  1. printf("sizeof(char) = %ld\n",sizeof(char)); //1字节
  2. printf("sizeof(short) = %ld\n",sizeof(short)); //2
  3. printf("sizeof(int) = %ld\n",sizeof(int)); //4
  4. printf("sizeof(long) = %ld\n",sizeof(long)); //8
  5. printf("sizeof(long long) = %ld\n",sizeof(long long)); //8

2、补码

正数的补码是其本身负数的补码是在原码的基础上各位取反,再+1

  1. char c = 255;
  2. int i = 255;
  3. printf("c = %d,i = %d\n",c,i);
  4. c的值为-1,i的值为255
  5. 因为char只有8bit,11111111-1
  6. int32个bit,00000000 00000000 00000000 11111111结果是255

3、unsigned

在类型前面加unsigned可以把该类型当作纯二进制看待,不以补码的形式表示

char c = 255        的结果是-1

unsigned char c = 255        的结果是255

  1. char c = 127;
  2. c = c + 1;
  3. printf("c = %d\n",c);
  4. 结果是-128,因为01111111 + 00000001 = 10000000
  5. 加了unsigned之后
  6. unsigned char c = 127;
  7. c = c + 1;
  8. printf("c = %d\n",c);
  9. 结果是128,因为是纯二进制运算

unsigned(-1)表示全1,因为-1是一个字节(8bit)中最大数11111111的补码

unsigned和int的区别只是在输出的不同,内部计算是一样的

4、float字长32bit

      double字长64bit

第一行结果是-0.005

第二行结果是-0.0048999999......三十位

第三行结果是-0.000

5、

  1. char c;
  2. char d;
  3. c = 1;
  4. d = '1';
  5. printf("c = %d\n",c);
  6. printf("d = %d\n",d);
  7. 结果是c = 1
  8. d = 49 //因为d是字符1,在ASCII码中字符1对应49

  1. char c;
  2. scanf("%c",&c);
  3. printf("c = %d\n",c);
  4. printf("c = '%c'\n",c);
  5. 第一个printf结果是49,第二个结果是字符'1'

scanf只能处理int不能处理char,可以scanf(“%c”,&c),但不能char c;scanf(“%d”,&c);

6、逃逸字符

在printf(" ");的双引号中想要输出的字符串中也包含双引号,需要用  \ 反斜杠   开头,跟上双引号组成一个字符

  1. printf("123\t456\n");
  2. printf("12\t456\n");
  3. 输出结果为:
  4. 123 456
  5. 12 456

7、自动类型转换

8、强制类型转换

  1. printf("%d",(int)10.2);
  2. 结果为10
  1. int a = 5;
  2. int b = 6;
  3. double d = (double)(a/b);

9、#include <stdbool.h>

之后就可以使用bool和true、false

  1. bool b = 6 > 5;
  2. printf("%d\n",b);
  3. 结果是1

10、逻辑运算

x > 4 && x < 6

如何判断一个字符c是否是大写字母

c>='A'&&c<='Z'
!age<20       先计算!age,答案不是1就是0,永远<20成立

10、条件运算符

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/142834
推荐阅读
相关标签
  

闽ICP备14008679号