C语言DAY02 - 数据类型


  • 新建项目

  1. product name : 新建项目的名称,程序,产品名称 英文
  2. Organization Name : 作者名字(公司名字)
  3. Organization Identifier : 公司标识,域名反写
  4. Bundle Identifier : 自动生成 程序标识
  5. Language : 使用哪种语言开发

  6. Next

  7. 选择文件目录
Program ended with exit code : 0;
代表程序运行结束了
Command + B 自动编译 检查逻辑错误
实时检查的是语法错误
  1. 程序是在内存中运行,将硬盘中的数据复制到内存中再运行

  2. 程序处理任何数据都要把数据存储起来
    例如:打人要先把人抓起来

  3. 存储在内存中,因为程序自己就在内存中

常见的变量的类型
  1. int 范围
    -2147483648~2147483647
  2. float 范围
    去掉小数点7位数,超出只存储前面7位
    超出部分不能精确保存.
    如12.12345123可能凑巧为12.123451
  3. double 范围
    存储有效位数16位的小数
  4. char
    只能存储单个字符 ‘a’
    存储多个字符保存最后一个.
    中文字符占3个字节
  • 垃圾值
    声明变量后,若不赋值,里面就是之前这块
    内存空间里的补码,打印出来就是补码转换
    成当前变量类型的原码的值.

  • 声明完变量立即赋一个初始值.

语法: 声明变量
数据类型 变量名称;
//float变量赋值的时候,最后加f.
//小数数据默认是double
占位符:
  1. %d int
  2. %f float 默认输出小数点后六位
  3. %lf double 默认后六位
  4. %c char
    printf(“%d%f%lf%c”,num,f1,d1,ch);
  5. %md m是任意数,占多少位宽整数,不足的地方以空格补齐,负数在后面补空格,实际有多少位就显示多少
  6. %0md,不足用0补齐//printf(“%05d\n”,a); 显示00888
  7. %g 1.123,就显示1.123而不是1.123000 自动省去无效位数
  8. %.nf或%.nlf.n是一个数字,代表要输出小数点后几位
  9. %p 打印地址
批量声明:
数据类型 变量名称 =数据,变量名称;

int num1 = 2200000000; //超过了int的最大值:2^31-1,不规范
int num2 = -19;        //规范
int num3 = 1.1;        //int类型为整数类型,不能有小数,不规范

double d1 = 12.12f;     //double类型不需要加f结尾,不规范.
float f1 = 13.57;       //float类型要加f结尾,不规范

char ch1 = '哈';         //char类型不能储存中文,中文占用3个字节,char只有一个字节的容量,错误!
char ch2 = 'a';         //规范

float f2 = 1234561.56734f; // 超过了flora的最大保存7位有效数字,会损失精度,不规范.
变量的命名规范
  1. 只能以任意的字母,下划线,$开头,不能以数字开头
  2. 后面只能跟字母,数字,下划线,$
  3. 不能跟关键字重名 int1可以用
  4. C语言严格区分大小写
自动类型转换:

为变量赋值的时候,如果赋值的数据的类型 和 变量的类型不一致
这个时候C系统会将赋值的数据类 转换为 变量的类型 然后再赋值
这样的情况叫做自动类型转换

a97 -32 = A 65   0 = 48

97.1=97.9=97='a';
语法:
scanf("格式控制符",变量地址列表);
  1. lldb 崩溃 没写取地址符号&

  2. 如果用户输入的数据和要求的不一致
    小数变整数
    其他数据 接受失败 默认值;
    所以接收的变量要初始化默认值

  3. 如果要求的是一个整形或者实型,输入之前的空格回车tab都会被忽略.直到输入了一个数据并按下回车

  4. scanf接收多个数据
    输入的时候默认用空格或者回车隔开
    scanf(“%d%d”,&num1,&num2);

  5. 自定义分隔符
    scanf(“%d-%d-%f”,&num,&boyNum,&avg);
    想用什么分隔符就在格式控制符中加入分隔符,一旦指定就不能用默认的

  6. 混合输入
    只能是实型,不能混入char.

缓冲区
  1. 执行scanf用户输入的(任何!)数据是先存储在缓冲区
  2. 执行函数时会先检查缓冲区中有没有数据,如果没有就会让用户从键盘输入,如果有就使用缓冲区数据

  3. !!!不会让用户输入!!!

  4. scanf函数从缓冲区按顺序拿数据,拿到对应的数据就跑.
    拿到空格回车tab会自动忽略.

  5. 程序重新运行缓冲区就清零

  6. 回车对于char来说也是一个字符\n

  7. char不会忽略任何数据,但也只拿一个字符.

  8. rewind(stdin); 清空缓冲区数据

交换两个变量的值
转圈
0=1;
1=2;
2=0;

不声明第三方变量
1=1+2;
2=1-2;
1=1-2;

异或
1=1^2;
2=1^2;
1=1^2;
强制类型转换
double = 5 *1.0 / 5 
1.0不能在后面,从左到右计算
char类型可以参与算数运算
  • 小写变大写-32
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值