dataclass型 and 运算符

LearningClanguage dataclass型, 常量, variable and 各种运算符 using

返回tutoriallist

1. dataclass型

1.1 Clanguage dataclass型classification

Clanguage dataclass型可以分 for 以 under 几class:

  • basicdataclass型: 整型, 浮点型, 字符型, boolean型
  • constructdataclass型: array, structure体, 联合体, 枚举
  • 指针class型: various types of指针
  • 空class型: void

1.2 basicdataclass型

1.2.1 整型

整型用于表示整数, Clanguageproviding了 many 种整型class型, 以适应不同范围 整数值:

class型 占用空间 取值范围
char 1字节 -128 to 127
short 2字节 -32768 to 32767
int 4字节 -2147483648 to 2147483647
long 4 or 8字节 取决于编译器
long long 8字节 -9223372036854775808 to 9223372036854775807

1.2.2 浮点型

浮点型用于表示带 has small 数部分 数值:

class型 占用空间 精度
float 4字节 约6-7位 small 数
double 8字节 约15-17位 small 数
long double 8 or 16字节 取决于编译器

1.2.3 字符型

字符型用于表示单个字符, in Clanguagein, 字符型practical on is a 特殊 整型, 它store is 字符 ASCII码值:

#include <stdio.h>

int main() {
    char ch = 'A';
    printf("字符: %c\n", ch);
    printf("ASCII码: %d\n", ch);
    return 0;
}

1.2.4 boolean型

C99标准引入了boolean型, 需要package含头file <stdbool.h>:

#include <stdio.h>
#include <stdbool.h>

int main() {
    bool flag = true;
    printf("boolean值: %d\n", flag); // 输出 1
    
    flag = false;
    printf("boolean值: %d\n", flag); // 输出 0
    
    return 0;
}

2. 常量 and variable

2.1 常量

常量 is 指 in 程序run过程in其值不能改变 量. Clanguagein 常量including:

2.1.1 字面常量

  • 整型常量: such as 100, 0x1A (十六进制) , 077 (八进制)
  • 浮点常量: such as 3.14, 2.5e-3 (科学计数法)
  • 字符常量: such as 'A', '\n' (转义字符)
  • string常量: such as "Hello World"

2.1.2 符号常量

using #define 预processing指令定义 常量:

#include <stdio.h>
#define PI 3.14159
#define MAX_AGE 100

int main() {
    printf("PI 值: %f\n", PI);
    printf("最 big 年龄: %d\n", MAX_AGE);
    return 0;
}

2.1.3 const常量

using const 关键字定义 常量:

#include <stdio.h>

int main() {
    const float pi = 3.14159;
    const int max_age = 100;
    
    printf("PI 值: %f\n", pi);
    printf("最 big 年龄: %d\n", max_age);
    
    // pi = 3.14; // error: 不能modifyconst常量 值
    
    return 0;
}

2.2 variable

variable is 指 in 程序run过程in其值可以改变 量. variable in using before 必须先声明, 声明variable时需要指定其dataclass型.

2.2.1 variable声明 and 初始化

#include <stdio.h>

int main() {
    // 声明variable
    int age;
    float salary;
    char grade;
    
    // 初始化variable
    age = 25;
    salary = 5000.50;
    grade = 'A';
    
    // 声明并初始化variable
    int count = 0;
    float average = 85.5;
    
    // 输出variable 值
    printf("年龄: %d\n", age);
    printf("工资: %.2f\n", salary);
    printf("etc.级: %c\n", grade);
    printf("计数: %d\n", count);
    printf("平均分: %.1f\n", average);
    
    return 0;
}

2.2.2 variable 作用域

variable 作用域 is 指variable in 程序in可以被访问 范围. Clanguagein variable作用域including:

  • 局部variable: in function in 部声明 variable, 只 in function in 部 has 效
  • 全局variable: in function out 部声明 variable, in 整个程序in都 has 效
#include <stdio.h>

// 全局variable
int global_var = 100;

void function() {
    // 局部variable
    int local_var = 200;
    printf("局部variable: %d\n", local_var);
    printf("全局variable: %d\n", global_var);
}

int main() {
    printf("全局variable: %d\n", global_var);
    function();
    // printf("局部variable: %d\n", local_var); // error: local_var  in 此作用域in未声明
    return 0;
}

3. 运算符

3.1 算术运算符

算术运算符用于执行basic 算术运算:

运算符 describes example
+ 加法 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b
% 取余 (模运算) a % b
++ 自增 a++ or ++a
-- 自减 a-- or --a
#include <stdio.h>

int main() {
    int a = 10, b = 3;
    
    printf("a + b = %d\n", a + b);
    printf("a - b = %d\n", a - b);
    printf("a * b = %d\n", a * b);
    printf("a / b = %d\n", a / b); // 整数除法, 结果 for  3
    printf("a %% b = %d\n", a % b); // 取余, 结果 for  1
    
    // 自增运算符
    int c = 5;
    printf("c = %d\n", c); // 输出 5
    printf("c++ = %d\n", c++); // 输出 5, 然 after  c 变 for  6
    printf("c = %d\n", c); // 输出 6
    printf("++c = %d\n", ++c); // c 变 for  7, 然 after 输出 7
    
    return 0;
}

3.2 relationships运算符

relationships运算符用于比较两个值 big small , 返回boolean值 (1表示真, 0表示fake) :

运算符 describes example
== etc.于 a == b
!= 不etc.于 a != b
> big 于 a > b
< small 于 a < b
>= big 于etc.于 a >= b
<= small 于etc.于 a <= b

3.3 逻辑运算符

逻辑运算符用于组合 many 个条件:

运算符 describes example
&& 逻辑 and a && b
|| 逻辑 or a || b
! 逻辑非 !a

3.4 赋值运算符

赋值运算符用于给variable赋值:

运算符 describes example etc.价于
= simple 赋值 a = b a = b
+= 加 after 赋值 a += b a = a + b
-= 减 after 赋值 a -= b a = a - b
*= 乘 after 赋值 a *= b a = a * b
/= 除 after 赋值 a /= b a = a / b
%= 取余 after 赋值 a %= b a = a % b

3.5 条件运算符

条件运算符 (三目运算符) is Clanguagein唯一 一个三目运算符:

#include <stdio.h>

int main() {
    int a = 10, b = 20;
    int max;
    
    // 条件运算符: 条件 ? 表达式1 : 表达式2
    max = (a > b) ? a : b;
    printf("最 big 值: %d\n", max);
    
    return 0;
}

3.6 运算符priority

Clanguagein运算符 priority from high to low 排列such as under :

  1. 括号 () [] -> .
  2. 一元运算符 ++ -- ! ~ + - * & sizeof
  3. 算术运算符 * / % + -
  4. 移位运算符 << >>
  5. relationships运算符 < <= > >=
  6. 相etc.运算符 == !=
  7. 位运算符 & ^ |
  8. 逻辑运算符 && ||
  9. 条件运算符 ? :
  10. 赋值运算符 = += -= *= /= %= <<= >>= &= ^= |=
  11. 逗号运算符 ,

实践case: 计算器程序

writing一个 simple 计算器程序, implementation两个数 加, 减, 乘, 除运算.

requirementsanalysis

  • 提示user输入两个operation数
  • 提示user选择运算符
  • 根据选择 运算符执行相应 运算
  • 输出运算结果

referencecode

#include <stdio.h>

int main() {
    float num1, num2, result;
    char operator;
    
    // 提示user输入两个operation数
    printf("请输入第一个数: ");
    scanf("%f", &num1);
    
    printf("请输入第二个数: ");
    scanf("%f", &num2);
    
    // 提示user选择运算符
    printf("请选择运算符 (+, -, *, /): ");
    scanf(" %c", &operator); // 注意 before 面 空格, 用于跳过换行符
    
    // 根据选择 运算符执行相应 运算
    switch(operator) {
        case '+':
            result = num1 + num2;
            printf("%.2f + %.2f = %.2f\n", num1, num2, result);
            break;
        case '-':
            result = num1 - num2;
            printf("%.2f - %.2f = %.2f\n", num1, num2, result);
            break;
        case '*':
            result = num1 * num2;
            printf("%.2f * %.2f = %.2f\n", num1, num2, result);
            break;
        case '/':
            if(num2 != 0) {
                result = num1 / num2;
                printf("%.2f / %.2f = %.2f\n", num1, num2, result);
            } else {
                printf("error: 除数不能 for 零!\n");
            }
            break;
        default:
            printf("error: 无效 运算符!\n");
    }
    
    return 0;
}

run结果

请输入第一个数: 10
请输入第二个数: 5
请选择运算符 (+, -, *, /): *
10.00 * 5.00 = 50.00

互动练习

练习1: writing一个C程序, 将摄氏度转换 for 华氏度. 公式: F = C * 9/5 + 32

练习2: writing一个C程序, 计算一个三位数 各位number之 and . 例such as, 输入123, 输出6.

练习3: writing一个C程序, 判断一个数 is 否 for 偶数.