当前位置: 首页 > news >正文

计算机考研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; 时,编译器会做两件事:

  1. 分配内存:为 score 分配一块内存空间(假设地址是 0x1000)。
  2. 绑定名称:将变量名 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);

}


 

相关文章:

  • Docker搭建Redis哨兵模式【一主两从三哨兵】
  • 《TCP/IP网络编程》学习笔记 | Chapter 17:优于 select 的 epoll
  • 面试之《commonjs,requirejs和es6 Module的区别》
  • Photo Works在线图片编辑器:一键修复老照片,轻松焕新记忆
  • java-单列模式-final-枚举
  • 「 DelegateUI 」Ant-d 风格的 Qt Qml UI 套件
  • 瑞芯微RK3576(1)-硬件设计
  • 浙江大学:DeepSeek行业应用案例集(153页)(文末可下载PDF)
  • python-docx库的run._element.get_or_add_rPr()方法详解
  • Adobe Firefly 技术浅析(三):GANs 的改进
  • string转const char*时,.data与.c_str()的区别
  • 应用篇| 抓包工具-charles的使用
  • HTML 表格详解(简单易懂较详细)
  • 图论的基础知识:平凡图、简单图、连通图、平面图、完全图、对偶图、同构图
  • 【RAGFlow】windows本地pycharm运行
  • Android 滑块开关 自定义Switch
  • 正则表达式(复习)
  • 【 IEEE出版 | 快速稳定EI检索 | 往届已EI检索】2025年储能及能源转换国际学术会议(ESEC 2025)
  • XSS笔记
  • ubuntu 解决 DNS 代理设置错误,导致不能上网的 DoH、DoT问题
  • 黄道炫:南京102天——黄镇球的防空日记
  • 上海车展侧记|中国汽车产业的韧性从何而来
  • 美权威人士批“特朗普对进口电影征关税”:将杀死美电影产业
  • 体坛联播|拜仁遭绝平未能提前夺冠,刘翔钻石联赛纪录作古
  • “五一”假期第三天,预计全社会跨区域人员流动量超2.8亿人次
  • 艺术开卷|韩羽读齐白石:妙在似与不似之间