??
作用域:一个变量在哪里可以使用它,哪里就是它的作用域。
局部变量的作用域:变量所在的局部范围
全局变量的作用域:整个工程
不管整个工程里面有多少源文件,都可以使用全局变量。这样的弊端是不安全。
比如:
在add.c文件中定义全局变量,int g_val=2022
在test.c文件中想要使用add.c文件中定义的全局变量
extern int g_val; //需要声明外部符号
int main(){
printf(“%d\n”,g_val);
return 0;
}
生命周期:
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期:整个程序的生命周期
100 整形字面值
‘w’ 字符字面值
3.14 浮点型字面值
“abcd” 字符串常量
const int num=9;
这里的num是const修饰的常变量。const修饰的常变量在C语言中只是在语法层面上限制了变量num不能被修改,但是num本质上还是一个变量,所以叫常变量。
const int n=10;
int arr[n]=0;
以上这样的写法是不对的,因为n虽然被const修饰,具有了常属性,不能被修改,但本质上还是变量,所以不能用来指定数组的大小。
int n=9;
int arr[n];
以上代码是在支持C99编译器上可编译的。C99中,引入了变长数组的概念,变长数组的大小是可以使用变量来指定的,但是数据不能初始化。在VS2019中是不支持C99的变长数组的,所以没法验证。
在Linux中的gcc编译器是支持变长数组的。
#define定义的标识符常量,可以写在{}中,不能被修改,可以用来自指定数组的大小。
#define Max 100
printf(“%d\n”,MAX);
枚举 enum
性别:男、女、秘密
三原色:RED GREEN BLUE
enum Sex{
male,
female,
secret
};
enum Sex是声明的一个表示性别的枚举类型
下面三个符号是这个枚举类型的未来的可能取值
enum Sex s=female;
用这个枚举类型创建的变量s,用枚举类型的可能取值进行赋值
priintf(“%d\n”,female);
注意:枚举常量的默认是从0开始,依次向下递增1的
如果想要指定枚举常量的某个值,可以自己在枚举类型的可能取值中进行赋值
enum Sex{
female=11,
male,
secret
};
"hello bit.\n"
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符
串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串
内容。
#include <stdio.h>
//下面代码,打印结果是什么?为什么?(突出'\0'的重要性)
int main()
{
char arr1[] = "bit";
char arr2[] = {'b', 'i', 't'};
char arr3[] = {'b', 'i', 't', '\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);
printf("%s\n", arr3);
return 0;
}
strlen是一个库函数,专门求字符串长度,头文件是string.h
strlen从起始位置开始数,统计\0字符前出现的字符个数
转义字符顾名思义就是转变意思
转义字符 释义
? 在书写连续多个问号时使用,防止他们被解析成三字母词
’ 用于表示字符常量’
\“ 用于表示一个字符串内部的双引号
\ 用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a 警告字符,蜂鸣
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\ddd ddd表示1~3个八进制的数字。 如: \130 X
\xdd dd表示2个十六进制数字。 如: \x30 0
#include <stdio.h>
int main()
{
//问题1:在屏幕上打印一个单引号',怎么做?
//问题2:在屏幕上打印一个字符串,字符串的内容是一个双引号“,怎么做?
printf("%c\n", '\'');
printf("%s\n", "\"");
return 0;
}
//程序输出什么? 14
#include <stdio.h>
int main()
{
printf("%d\n", strlen("abcdef"));
// \62被解析成一个转义字符
printf("%d\n", strlen("c:\test\628\test.c"));
return 0;
}
\ddd
ddd是8进制数数字(0~7)
\62被解析成一个转义字符
#include <stdio.h>
int Add(int x, int y)
{
return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{
return x-y;
}
*/
int main()
{
//C++注释风格
//int a = 10;
//调用Add函数,完成加法
printf("%d\n", Add(1, 2));
return 0;
}
比特就业课-专注IT大学生就业的精品课程
比特主页:https://m.cctalk.com/inst/s9yewhfr
注释有两种风格:
C语言风格的注释 /xxxxxx/
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行
如果你好好学习,校招时拿一个好offer,走上人生巅峰。
如果你不学习,毕业等于失业,回家卖红薯。
这就是选择!
#include <stdio.h>
int main()
{
int coding = 0;
printf("你会去敲代码吗?(选择1 or 0):>");
scanf("%d", &coding);
if(coding == 1)
{
prinf("坚持,你会有好offer\n");
}
else
{
printf("放弃,回家卖红薯\n");
}
return 0;
}
C语言中如何实现循环呢?
🎗?while语句-讲解
🎗?for语句(后期讲)
🎗?do … while语句(后期讲)
//while循环的实例
#include <stdio.h>
int main()
{
printf("加入学校\n");
int line = 0;
while (line <= 20000)
{
line++;
printf("我要继续努力敲代码\n");
}
if (line > 20000)
printf("好offer\n");
return 0;
}
函数的特点就是简化代码,代码复用
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
上述代码,写成函数如下:
#include <stdio.h>
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
要存储1-10的数字,怎么存储?
C语言中给了数组的定义:一组相同类型元素的集合
整型数组
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定义一个整形数组,最多放10个元素
字符数组
两种方法
(1)
char arr[]="bit";
(2)
char arr[]={'b','i','t'};
C语言规定:数组的每个元素都有一个下标,下标是从0开始的。
数组可以通过下标来访问的。
比如
int arr[10] = {0};
//如果数组10个元素,下标的范围是0-9
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员