本章节主要讲了数据类型、变量命名规则、运算符优先级。
目录
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;
}
全局变量和局部变量之间的区别主要在于它们的作用域和生命周期。全局变量具有全局范围,可以在整个程序中使用,而局部变量只能在其声明的函数或代码块中使用。由于全局变量的生命周期长,它们占用内存的时间更长,因此应谨慎使用全局变量,以避免不必要的内存占用。
标签:类型转换,运算符,字符,int,局部变量,C语言,学习,Linux,全局变量 From: https://blog.csdn.net/qq_53344001/article/details/136738372