计算机考研C语言
C语言程序设计从入门到精通【2025完整版】考研复试 嵌入式 计算机二级 软考 专升本也适用_哔哩哔哩_bilibili
1、第一个C程序
helloC
#include <stdio.h>
int main()
{
printf("hehe");
return 0;
}
每个C语言程序不管有多少行代码,都是从main函数开始执行的,main函数是程序的入口,main函数也被叫做:主函数。main 前面的int表示main函数执行结束的时候返回-一个整型类型的值。所以在main函数的最后写return 0;正好前后呼应。
库函数:https://cplusplus.com/reference/clibrary/
main函数多种写法
2、数据类型
2.1 字符char
2.2 整型int
2.3 浮点型float/double
2.4 布尔类型_Bool
3、scanf函数
#include <stdio.h> int main() { int score = 0; printf("请输入文字"); scanf("%d", &score); printf("成绩为:%d\n", score); return 0; }
&
符号是取地址运算符,它的作用是获取变量在内存中的存储地址。
scanf
函数需要知道变量在内存中的具体位置,才能将用户输入的值写入对应的内存空间1. 变量名的本质
当你声明
int score = 0;
时,编译器会做两件事:
- 分配内存:为
score
分配一块内存空间(假设地址是0x1000
)。- 绑定名称:将变量名
score
与地址0x1000
关联起来,后续所有对score
的操作(读取或写入)都通过这个地址完成。
2. 直接赋值时发生了什么?
当执行
score = 10;
时:
- 编译器自动翻译:编译器知道
score
的内存地址是0x1000
,所以直接生成机器指令:将值10
写入地址0x1000
。- 无需手动操作地址:变量名
score
已经隐含了地址信息,因此不需要用&
去取地址。
3. 为什么
scanf
需要&
?
scanf
是一个函数,它的工作机制不同:
- 函数参数传递:C语言默认是“值传递”,即函数接收的是参数的副本,而非原始数据。
- 必须显式传递地址:要让
scanf
修改外部变量score
,必须告诉它score
的地址(&score
),否则它只能操作一个临时的副本。简单理解:形参要想改变实参的值,必须加上&
占位符
用赋值忽略符
4、getchar函数
#include <stdio.h>
int main()
{
char ch = getchar();
printf("字符%c", ch);
return 0;
}
#include <stdio.h>
int main()
{
int len = 0;
while(getchar() != '\n') {
len++;
}
printf("长度%d", len);
return 0;
}
5、sizeof函数
6、指针
#include <stdio.h>
void main()
{
int a = 10;
int *ptr = &a; // 这里的*ptr表明声明一个指针变量,存储a的地址
// a(变量) → 内存地址:0x1000,存储的值:10
// ptr(指针) → 内存地址:0x2000,存储的值:0x1000(即 a 的地址)
printf("打印指针里面存储的地址%d\n", ptr);
printf("打印指针里面存储的地址里面的值%d", *ptr);
}