C语言学习过程记录(三)--数据类型

本章节主要讲了数据类型、变量命名规则、运算符优先级。

目录

1.main函数

2.注释:

3.标准输入(scanf)和标准输出(printf)

4.数据类型

4.1整数型:

4.2浮点型:

5.运算符优先级

6.字符常量

7.运算符

8.变量

8.1全局变量

局部变量


1.main函数

main函数是C语言程序的主体。

2.注释:

单行注释://...

多行注释:/*...*/

3.标准输入(scanf)和标准输出(printf)

%d十进制
%x十六进制
%o八进制

4.数据类型

常用的数据类型:整型、浮点型、字符

4.1整数型:

int%d
char%c

4.2浮点型:

float、double%m.nf

单精度、双精度。m:位宽、n:小数点后n位

5.运算符优先级

1. 操作数越多的运算符优先级相对低一点:单目—-双目(不包含赋值运算符)---三目—赋 值—逗号。

2. 双目运算符个数最多,算术运算符---移位运算符---关系运算符---位运算符---逻辑运算符

3. 位运算符:~ & ^ |

4. 逻辑运算符:! && ||

5. 所有的赋值运算符都具有相同的优先级

6.字符常量

   字符常量是用单引号括起来的单个字符。字符常量可以是一个普通的ASCII字符(如'a'、'A'、'0'、'%'等),也可以是一个特殊的转义字符(如'\n'、'\t'等)

  • 普通的ASCII字符常量:
char ch1 = 'A';
char ch2 = 'a';
char ch3 = '0';
  • 转义字符常量:
char newline = '\n';  // 换行符
char tab = '\t';      // 制表符
char backslash = '\\'; // 反斜杠
  • ASCII码常量表示:
char asciiChar = 65;  // 表示ASCII码为65的字符,即字符'A'

7.运算符

按照操作数有:

单目运算符:(+、-、*、/)

双目运算符:(+=\、-=\...)

三目运算符:[ (表达式1)?表达式2 :表达式3]

逻辑运算符

与&、或|、非!

实际上非0表true,0表false

关系运算符:>、<、>=、<=

赋值运算符:=

类型转换

C语言中的类型转换包括隐式类型转换(自动类型转换)和显式类型转换(强制类型转换)。

隐式类型转换

隐式类型转换是由编译器自动执行的类型转换,它发生在表达式涉及不同数据类型时。在隐式类型转换中,通常较低精度的类型会被转换为较高精度的类型以避免精度损失。

例如,在以下表达式中,整数会自动转换为浮点数进行计算:

int a = 5;
float b = 2.5;
float c = a + b; // a被隐式转换为float类型再与b相加

显式类型转换 (强制类型转换)

显式类型转换是由程序员明确指定的类型转换操作。在C语言中,使用强制类型转换可以将表达式的值转换为指定的类型,即使这可能造成精度损失或数据溢出。

double d = 3.14;
int i = (int)d;  // 显式将浮点数转换为整数,小数部分会被截断

        在强制类型转换中,使用括号将要转换的表达式括起来,并在括号内指定要转换的目标类型。

        警告:虽然强制类型转换提供了灵活性,但过度使用它可能会导致代码不易阅读和维护,因此应该谨慎使用。

        在涉及类型转换时,应理解不同数据类型的表示范围和精度,以确保转换操作能够得到预期的结果,并尽量避免精度损失和数据溢出的问题。

8.变量

8.1全局变量

        全局变量是在函数外部声明的变量,它们可以被程序中的所有函数访问。全局变量的作用域从声明处开始,直到文件结束。全局变量在程序启动时被创建,在程序结束时销毁。

示例:

#include <stdio.h>

int globalVar = 10;  // 全局变量

void function1() {
    printf("全局变量在 function1 中可访问:%d\n", globalVar);
}

int main() {
    printf("全局变量在 main 函数中可访问:%d\n", globalVar);
    function1();
    return 0;
}

8.2局部变量

        局部变量是在函数或代码块内部声明的变量,它们只能在声明的函数或代码块内部使用。局部变量的作用域从声明处开始,直到所在的代码块结束。局部变量在程序每次执行到其所在的代码块时被创建,在代码块结束时销毁。

示例:

#include <stdio.h>

void function2() {
    int localVar = 20;  // 局部变量
    printf("局部变量在 function2 中可访问:%d\n", localVar);
}

int main() {
    int localVar = 15;  // 局部变量
    printf("局部变量在 main 函数中可访问:%d\n", localVar);
    function2();
    return 0;
}

        全局变量和局部变量之间的区别主要在于它们的作用域和生命周期。全局变量具有全局范围,可以在整个程序中使用,而局部变量只能在其声明的函数或代码块中使用。由于全局变量的生命周期长,它们占用内存的时间更长,因此应谨慎使用全局变量,以避免不必要的内存占用。


补充:

\hhh: 八进制转换:\101:\65

\xhh:16进制转换

  • 35
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值