首页 > 技术文章 > <C> 基本数据类型 - 2017/11/8

guijin 2017-12-20 09:00 原文


1、创建项目 win32控制台
  <>点击空项目 去掉安全周期

2、变量和常量
  2.1 变量 程序运行中会发生变化的量

           如:19期的人数
  2.2 常量 不会在程序中发生改变的值

    如:圆周率
   常量也是有类型


    声明 和使用
  类型 +变量名

int a;        // a就是一个整型变量
a = 3;      // 给变量赋值 当前 a 存放的是 3
a = a * 4; // a存放的是:3 * 4
printf_s("%d", a); // 打印 格式占位符

  PI --> 常量命名

  2.3 变量命名
    C语言中命名:数字 字母 下划线 $组成 (不能用数字开头)

  驼峰命名法:
  几个单词 < 除去第一个单词外 其余单词全部首字母大写 > 这句是重点

  比如:

    ouguangwithoneball --> ouGuangWithOneBall
    iPadMini
    写的时候可以加前辍 n整型 int nSunShine
    c字符 char cOneBall;
    

    g全局
    m成员

3.类型
  基本数据类型:int char float double
   3.1 整型(整数)
  int 有符号整型 (整数) 0 ,1 , 2, -1 , -33 占4个字节
      int 的范围是 -2^31 ~ 2^31-1 10位数10十进制 int 最多能存9位数
   -2147483648 ~ 2147483647
   short 短整形 2个字节 范围比int小
   long 在32位也是占用4个字节 范围在这里和int 是一样的
  (long 不低于int ) (long long 用得很少 范围是:-2^63 ~ 2^63-1)

  3.2 浮点型 小数(实型)
  float 单精度浮点型 4个字节 存放范围 精度 运算速度
   double 双精度浮点型 8个字节

   按范围:float 范围小于 double 3.4*10^38 1.7*10^308
   精度 表示小数点的位数 float 可以精确到小数点后 6 ~ 7 位 doulbe 能精确到 16 ~ 17 位

   运算速度 float 比 double 小 运算速度比 double快
   3.141592654

  3.3 字符类型 char
  整型 只占用一个字节 -128 ~ 127
   0 ~ 127 每一个数字对应一个符号: 'A' 'a' ' '
   对应关系 ASCII码表
   65 --> ' A ' ' a ' --> 97
   字符要用引号括起来 ASCII码就不用

    sizeof 求字节 求数据或类型占用的字节大小
   sizeof(int)

4. 输入输出
  printf scanf --> 头文件 stdio.h
  4.1 格式占位符
  %d  int
   %f  float
   %lf  double
   %c   char
   %s  字符串


  %x    打印16进制的整型
  %o    打印8进制的整数
  %p    打印16进制的地址
  %e    打印科学计数法形式的浮点型 (不能在scanf里面用)
   %g    10进制或者科学计数法形式打印浮点型 (
  %u    无符号的10进制整数


  %  hd short
  %  ld long
  %  lld long long
4.2 printf 的格式
  printf("打印的字符串 + 格式占位符",打印的内容);

4.2.1 控制精度 小数
  %.3f    表示打印3位小数 只能用于浮点型
  %f %lf    默认打印小数点后面的6 ~ 7位
4.2.2 控制宽度 --> %2d 打印两位 控制最小打印的位数
  位数不够左边填空格 位数够
  int x = 12345; 用%2d打印
  99乘法表
4.2.3 %-2d - 在右边补空格
  %+d   在前面打印符号
  %02d   0在右对齐的情况下 在前面用0代替空格补齐
  %#x或者%#o  在打印16进制或者8进制的时候前面加前缀
  C# sharp

4.3 scanf 格式
  scanf("格式占位符",&变量); // 需要用printf()提示用户输入什么内容
  标点符号问题
  格式占位符 不要写错了
  取地址
  --> 精度 scanf没有精度
   --> 宽度 控制最大输入长度
5.转移字符(以下写的时候)

  \t    制表符
  \n   表示换行 \r 也是换行 --> \r\n 表示回车
  \a    响铃

  默认右对齐 %6d 12

  < 复合类型 : 数组 结构体 联合枚举 指针 >

  代码块:

#include <stdio.h>
int map[10]; // 全局 int main() { #if 0 /* 变量命名 */ int _a, a, $a; int 意会 = 3; // VS 中可以用中文 //int 7a; // 不可以用数字放在前面命名 #elif 0 printf("%d\n", sizeof(int)); long long num = 177777070147; printf("%lld", num); // 格式占位符 用来打印long long char a = 65; // char a = 'A'; char x, y, z; x = 0; // 0 y = '0'; // 48 z = 48; // 和 y 一样的 #elif 0 double y = 0.00000000000566; printf("%.14lf", y); // 打印小数 //printf("%e", y); // 打印科学计数法形式 //printf("%x", 56); #elif 0 printf("%#x", 56); getchar(); // 暂停 按回车继续 printf("%+2d", 12345); getchar(); // 等待字符输入 for (int i = 1; i < 10; i++) { for (int j = 1; j < i; j++) { printf("%d*%d=%2d\t", i, j, i*j); } printf("\n"); } #elif 0 printf("请输入int:"); int x; scanf_s("%d", &x); // 获取x 的值 /* ** 同时输入变量 %d%d 两个格式占位符写一起 空格或者回车隔开或者tab键 ** %d,%d 只能用逗号 */ getchar(); // 输入的时候敲一个回车 printf("x = %d\a\a", x); // 打印x的值 #elif 1 // 作业: int x; char y; float a; double n; printf("请输入四个数:"); scanf("%d %s %f %lf", &x, &y, &a, &n); printf("%d\t%s\t%f\t%lf\n", x, y, a, n); #endif getchar(); // 防止闪屏 return 0; }

// 32位环境   指针大小32位   < int  4个字节 >  < long long  8个字节 >

 

推荐阅读