C语言入门-1.数据的类型、数据的输入输出

数据类型·常量·变量(整型-浮点-字符)

数据类型

基本类型

整型int
符号常量

定义一个整形变量时要使用关键字int

#include <stdio.h>
//符号常量练习
#define PI 3 + 2
int main() {
    int i = PI * 2;
    printf("i=%d\n",i);
    return 0;
} //7
//因为符号常量PI是直接替换的效果,因此不可以写PI=8
整型变量
#include <stdio.h>
//符号常量练习
#define PI 3 + 2
int main() {
    int i = PI * 2;
    printf("i=%d\n",i);
    printf("i size = %d\n", sizeof(i));//sizeof可以用来计算某个变量的空间大小
    //i size = 4
    return 0;
}#include <stdio.h>
//符号常量练习
#define PI 3 + 2
int main() {
    int i = PI * 2;
    printf("i=%d\n",i);
    printf("i size = %d\n", sizeof(i));//sizeof可以用来计算某个变量的空间大小
    //i size = 4
    return 0;
}
浮点型float
浮点型常量

小数形式:0.123

指数形式 3e-3(为3*10^-3)e代表10的幂次

浮点型变量
#include <stdio.h>
int main() {
    float f = 3e-3;
    printf("f=%f\n",f);//f=0.003000
    return 0;
}
 字符型char

‘a’,’c’,’1’

\n转义字符 换行 \\ 输出一个斜杠

字符数据在内存中的存储形式及其使用方法

一个字符型变量占用1字节大小的空间

#include <stdio.h>
int main() {
    char a = 'A';
    printf("%c\n",a+32);//以字符形式输出 a
    printf("%d\n",a);//以数值形式输出  65
    return 0;
}
构造类型 

数组([])、结构体(struct)

指针类型
空类型void

常量

分为 整型、实型(浮点型)、字符型(’c’)、字符串型(”abc”)

字符串型常量

“a” 双引号 占用的内存单元不是1个字符,而是2个字符,及大小为2个字节,最后一个字符为’\0’

变量

变量名、变量值、存储单元。

这些值在程序的执行过程中是可以改变的。

命名规范:

字母、数字和下划线

📌 并且第一个字符必须为字母或下划线

混合运算-printf使用

混合运算

类型强制转换场景

整形数进行除法运算时,如果运算结果为小数,那么存储浮点数时一定要进行强制类型转换

#include <stdio.h>
int main() {
    int i = 5;
    float j = i/2;//这里做的是整型运算,因为左右操作数都是整型
    float k = (float)i/2;
    printf("%f\n",j);//2.000000
    printf("%f\n",k);//2.500000
    return 0;
}

printf讲解 

1.原理:printf函数将这些类型的数据格式化为字符串后,放入标准输出缓冲区,然后将结果输出在屏幕上。

//语法
#include <stdio.h>
int printf(const char *format,...);

2.字符串格式(format)由两部分组成:显示到屏幕上的字符和定义printf函数显示的其他参数

 

%c 字符
%d 带符号整数
%f 浮点数
%s 一串字符
%u 无符号整数
%x 无符号十六进制数,用小写字母

#include <stdio.h>
int main() {
    int age = 12;
    printf("Hello %s,you are %d years old.\n","Bob",age);
    //Hello Bob,you are 12 years old.
    int i = 10;
    float f = 96.3;
    printf("student number = %-3d,score = %5.2f\n",i,f);
    //student number = 10 ,score = 96.30
    i = 100;
    f = 98.21;
    printf("student number = %3d,score = %5.2f\n",i,f);
    //student number = 100,score = 98.21
    return 0;
}

整型进制转换 

执行语句int i = 123,变量i会在内存上分配空间,大小为4字节。其中i的值变为7b(以十六进制方式查看内存),其十进制值为7*16+11=123.i的值是0x0000007b。为什么显示结果为7b 00 00 00呢?原因是因特尔CPU采用了小端方式进行数据存储,因此低位在前、高位在后

scanf读取标准输入 

scanf函数的原理

C语言未提供输入/输出关键字,其输入和输出是通过标准函数库来实现的。C通过scanf函数读取键盘输入,键盘输入又被成为标准输入。当scanf函数读取标准输入时,如果还没有输入任何内容,那么scanf函数会被卡住(专业用语阻塞)

#include <stdio.h>
//scanf用来读取标准输入,scanf把标准输入的内容,需要放到某个变量空间里,因此变量必须取地址
//scanf会阻塞,是因为标准输入缓冲区时空的
int main() {
    int i ;
    char c;
    float f;
    scanf("%d",&i);
    printf("i=%d\n",i);//把标准输入缓冲区的10读走了
//    fflush(stdin);//清空标准输入缓冲区
//    scanf("%c",&c);
//    printf("c=%c\n",c);
    scanf("%f",&f);//读取浮点数时,不需要fflush,会自己阻塞住
    printf("f=%f\n",f);
    return 0;
}

❓读取浮点数时,不需要fflush,会自己阻塞住

✅因为scanf函数在读取整型数、浮点数、字符串时,会忽略’\n’、空格符等字符(忽略是指scanf函数执行时会首先删除这些字符,然后再阻塞)

多种数据类型混合输入

#include <stdio.h>

int main() {
    int i,ret;
    char c;
    float f;
    ret = scanf("%d %c%f",&i,&c,&f);//ret是指scanf匹配成功的个数
    printf("i = %d,c = %c,f=%f\n",i,c,f);
    return 0;
}
//输出
100 a 98.2
i = 100,c = a,f=98.199997

相关推荐

  1. 数据输入输出C++)

    2024-07-10 12:32:09       45 阅读
  2. C语言输入输出详解

    2024-07-10 12:32:09       46 阅读
  3. C语言标准输入输出

    2024-07-10 12:32:09       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 12:32:09       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 12:32:09       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 12:32:09       4 阅读
  4. Python语言-面向对象

    2024-07-10 12:32:09       5 阅读

热门阅读

  1. 墨烯的C语言技术栈-C语言基础-010

    2024-07-10 12:32:09       13 阅读
  2. html5路由如何在nginx上部署(vite+vue3)

    2024-07-10 12:32:09       11 阅读
  3. nodejs学习之glob

    2024-07-10 12:32:09       9 阅读
  4. Unity--异步加载场景

    2024-07-10 12:32:09       7 阅读
  5. activiti6学习

    2024-07-10 12:32:09       7 阅读