001.C语言基础学习

news2024/11/15 9:55:58

之前只学过python,在这里我的本意是想学C++,但是没有C语言的基础,听起来比较吃力,所以就快速过一下C语言。这是一个零基础入门的笔记,高手可以绕过。

0.Visual studio2022的使用

创建第一个C语言项目和源文件
https://blog.csdn.net/qq_45037165/article/details/124520286

1.第一个C语言项目

#include<stdio.h>
int main() {
	printf("Hello World");
	return 0;
}

运行结果:
在这里插入图片描述

在这里插入图片描述

  • 第一行为库函数,提供例如屏幕打印的调用服务。
  • 第二行为主函数,int为主函数返回类型,main()为函数头,每个程序都只有一个main函数,并且为程序的入口。其中大括号{}里面的内容为函数体,里面包含具体程序段。
  • 第三行为屏幕打印函数,改行代码的意义是在屏幕中打印双引号里面的内容。
  • 第四行为函数返回值,由于main函数返回值为int型,因此一定要有一个返回值。

注意:每行代码结束要用英文状态下的分号;结束。

2.数据类型

在这里插入图片描述

为什么出现这么多的类型?

因为编程是来解决生活中的问题,生活中就有这么多类型。

每种类型的大小是多少?

我们注释掉之前写的代码,注释快捷键是:Ctrl+shift+/ 重新写一段代码看看:
在这里插入图片描述
单位为字节。
在这里插入图片描述
计算机的世界是二进制,我们生活的世界是十进制

8个bit比特位 = 1个byte字节
其他都是1024倍
在这里插入图片描述
当我们知道了这个之后,上面的代码就很好算了
在这里插入图片描述
在这里插入图片描述

3.变量

变量的自定和使用

int main() {
	int myNum = 15;
	printf("%d", myNum);  //格式说明符 %d 或 %i 用双引号括起来
	return 0;

举例:求和

int main()
{
	int num1 = 0;
	int num2 = 0;

	//请输入两个整数:
	scanf_s("%d" "%d", &num1, &num2);

	//求和,写求和表达式的同时定义sum变量
	int sum = num1 + num2;

	//输出结果
	printf("%d\n", sum);

	return 0;
}

修改变量

int main()
{
	int a = 10;
	a = 20;   //修改变量
	printf("%d\n", a); //20
}

4.常量

const修饰的常变量,不允许被修改

int main()
{
	const int a = 10;  //加了const就不允许倍改
	a = 20;   //如果修改,则程序报错
	printf("%d\n", a); //报错
}

define 定义的标识符常量

#define MAX 100
int main()
{
	printf("%d\n", MAX);//100
	int a = MAX;
	printf("%d\n", a);//100
	MAX = 200//报错
	return 0;
}

5.运算符

C 将运算符分为以下几组:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

在这里插入图片描述
举例:求和

int main()
{
	int sum1 = 100 + 50;        // 150 (100 + 50)
	int sum2 = sum1 + 250;      // 400 (150 + 250)
	int sum3 = sum2 + sum2;     // 800 (400 + 400)

	printf("%d\n", sum1);//150
	printf("%d\n", sum2);//400
	printf("%d\n", sum3);//800

	return 0;
}

赋值运算符

赋值运算符用于为变量赋值。
在下面的示例中,我们使用 assignment 运算符 (=) 将值 10 分配给 一个名为 x 的变量:

#include <stdio.h>

int main() {
  int x = 10;
  x += 5;
  printf("%d", x);//15
  return 0;
}

逻辑运算符
逻辑运算符用于确定变量或值之间的逻辑:
在这里插入图片描述

#include <stdio.h>

int main() {
  int x = 5;
  int y = 3;
  
  printf("%d", x > 3 && x < 10);//1,即可true
  return 0;
}

6.条件判断

If … Else 条件语句

C 支持数学中的常见逻辑条件:

小于:a < b
小于或等于:a <= b
大于:a > b
大于或等于:a >= b
等于 a == b
不等于:a != b

您可以使用这些条件为不同的决策执行不同的操作。

C 有以下条件语句:

使用if指定要执行的代码块,如果指定条件为真
使用else指定要执行的代码块,如果相同条件为假
如果第一个条件为假,则使用 else if 指定要测试的新条件
使用 switch 指定要执行的许多替代代码块

#include <stdio.h>

int main() {
  if (20 > 18) {
    printf("20大于18");
  }  
  return 0;
}

也可以测试变量

#include <stdio.h>

int main() {
  int x = 20;
  int y = 18;
  if (x > y) {
    printf("x is greater than y");
  }  
  return 0;
}

else 语句

#include <stdio.h>

int main() {
  int time = 20;
  if (time < 18) {
    printf("Good day.");
  } else {
    printf("Good evening.");
  }
  return 0;
}

在上面的例子中,时间(20)大于18,所以条件是false。 因此,我们转到 else 条件并打印到屏幕"Good evening"。 如果时间小于 18,程序将打印"Good day"。

else if 语句

如果第一个条件为 false,则使用 else if 语句指定新条件。

#include <stdio.h>

int main() {
  int time = 22;
  if (time < 10) {
    printf("Good morning.");
  } else if (time < 20) {
    printf("Good day.");
  } else {
    printf("Good evening.");
  }
  return 0;
}

在上面的例子中,时间 (22) 大于 10,所以 第一个条件 是 false。 else if 语句中的下一个条件也是 false,所以我们继续进行 else 条件,因为 condition1 和 condition2 都是 false - 并打印到屏幕上"Good evening"。

但是,如果时间是 14 点,我们的程序会打印"Good day"。

Switch 语句

#include <stdio.h>

int main() {
  int day = 4;
  
  switch (day) {
    case 1:
      printf("Monday");
      break;
    case 2:
      printf("Tuesday");
      break;
    case 3:
      printf("Wednesday");
      break;
    case 4:
      printf("Thursday");
      break;
    case 5:
      printf("Friday");
      break;
    case 6:
      printf("Saturday");
      break;
    case 7:
      printf("Sunday");
      break;
  }
    
  return 0;
}

break 关键字

当 C 到达 break 关键字时,它会跳出 switch 块。
这将停止块内更多代码和案例测试的执行。
找到匹配项并完成工作后,就该休息一下了。 无需进行更多测试。

default 默认关键字

#include <stdio.h>

int main() {
  int day = 4;
  
  switch (day) {
  case 6:
    printf("Today is Saturday");
    break;
  case 7:
    printf("Today is Sunday");
    break;
  default:
    printf("Looking forward to the Weekend");
  }
  
  return 0;
}

循环语句

While 循环

#include <stdio.h>

int main() {
  int i = 0;
  
  while (i < 5) {
    printf("%d\n", i);
    i++;
  }
  
  return 0;
}

Do/While 循环

#include <stdio.h>

int main() {
  int i = 0;
  
  do {
    printf("%d\n", i);
    i++;
  }
  while (i < 5);
  
  return 0;
}

For循环

实例1:将打印数字 0 到 4:

#include <stdio.h>

int main() {
  int i;

  for (i = 0; i < 5; i++) {
    printf("%d\n", i);
  }
  
  return 0;
}

实例2:打印 0 到 10 之间的偶数

for (i = 0; i <= 10; i = i + 2) {
  printf("%d\n", i);
}

Break 和 Continue 语句

break 跳出整个循环。

#include <stdio.h>

int main() {
  int i;
  
  for (i = 0; i < 10; i++) {
    if (i == 4) {
      break;
    }
    printf("%d\n", i);
  }
   
  return 0;
}

Continue 跳过其中1次循环。如果指定条件发生,continue 语句会中断一次迭代(循环中),并继续循环中的下一次迭代。

#include <stdio.h>

int main() {
  int i;
  
  for (i = 0; i < 10; i++) {
    if (i == 4) {
      continue;
    }
    printf("%d\n", i);
  }   
  
  return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116681.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PACS系统源码】与医院HIS系统双向数据交换,实现医学影像集成与影像后处理功能

​医院医学影像PACS系统源码&#xff0c;集成三维影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功能。系统功能强大&#xff0c;代码完整。 PACS系统与医院HIS实现双向数据交换&#xff0c…

【diffusion model】扩散模型入门

写在最前&#xff0c;参加DataWhale 10月组队学习。 参考资料&#xff1a; HuggingFace 开源diffusion-models-class 1.扩散模型介绍 2.调用模型生成一张赛博风格的猫咪图片 2.1 安装依赖包 %pip install -qq -U diffusers datasets transformers accelerate ftfy pyarrow9…

Vercel 如何使用 Amazon EventBridge 调度器在2个月内发布 Cron 作业

Vercel 使用 Amazon EventBridge 调度器实施 Cron 作业&#xff0c;使他们的客户能够大规模创建、管理和运行计划任务。该功能很快就获得了广泛采用&#xff0c;发布后仅几个月&#xff0c;每周 cron 调用次数就超过 700 万次。本文将介绍他们是如何取得这一成就的&#xff0c;…

d3dx9_43.dll丢失有什么办法可以解决,解决d3dx9_43.dll丢失

通常d3dx9_43.dll丢失都是在运行游戏时汤出的d3dx9_43.dll找不到的错误窗口&#xff0c;因为d3dx9_43.dll文件更多是在使用游戏时会被调用的dll文件&#xff0c;d3dx9_43.dll是属于DirectX9的一个组件&#xff0c;DirectX9是游戏系统中的一个重要程序&#xff0c;所以当d3dx9_4…

MySQL数据库下载与安装使用

文章目录 MySQL数据库下面是各个版本完整的生命周期。下载MySQL安装包安装和使用MySQL一些基础MySQL使用命令 MySQL数据库 这里我选择的是免安装绿色解压版本 现在各位开发者使用的MySQL&#xff0c;大部分版本都是 5.7&#xff0c;根据官方说明&#xff0c;MySQL 5.7 将于 202…

零售创新:社交媒体如何改变跨境电商游戏规则?

在当今数字化的时代&#xff0c;社交媒体已经成为了我们日常生活中不可或缺的一部分。Facebook、Instagram、Twitter、WeChat等平台不仅让我们与朋友家人保持联系&#xff0c;还成为了一个新的商业战场。特别是在跨境电商领域&#xff0c;社交媒体的崛起正在彻底改变游戏规则。…

团购页面.

<!DOCTYPE html> <html><head><title>团购</title><meta http-equiv"content-type" content"text/html; charsetutf-8"/><meta name"apple-mobile-web-app-capable" content"yes"/><lin…

yxy销售网站后台管理系统

springbootmybatisthymeleaf 第一个练习的项目就是小商品零售平台后台管理系统&#xff0c;但是当时由于业务不熟练&#xff0c;需求分析先不做好&#xff0c;导致在开发的过程中出现了很多问题。 这次首先把需求确定&#xff0c;详细的做好前期准备工作&#xff0c;再来进行…

acme.sh: 未找到命令解决办法丨acme命令安装ssl证书

在Freessl申请的ssl证书现在都是需要acme命令了&#xff0c;服务器没有自带所以会出现这个报错&#xff0c;首先 1、安装并下载&#xff1a; curl https://get.acme.sh | sh -s emailmyexample.com2、进入到安装目录,创建指令别名&#xff1a; cd /root/.acme.sh/ alias acm…

一些经典的神经网络(第19天)

1. 经典神经网络&#xff08;LeNet&#xff09; LeNet是早期成功的神经网络&#xff1b; 先使用卷积层来学习图片空间信息 然后使用全连接层来转到到类别空间 【通过在卷积层后加入激活函数&#xff0c;可以引入非线性、增加模型的表达能力、增强稀疏性和解决梯度消失等问题…

防水款无源NFC卡片

产品参数&#xff1a; PN29_T 产品参数 产品型号 PN29_T 尺寸(mm) 85.8*41*2.9mm 显示技术 电子墨水屏 显示区域(mm) 29(H) * 66.9(V) 分辨率(像素) 296*128 像素尺寸(mm) 0.227*0.226 显示颜色 黑/白 视觉角度 180 工作温度 0-50℃ 电池 无需电池 工作…

linux性能分析(四)CPU篇(一)基础

一 CPU篇 遗留&#xff1a; 负载与cpu关系、负载与线程的关系? ① CPU 相关概念 1、physical 物理CPU个数 --> 一般一个实体 2、cpu 核数 3、逻辑CPU个数 逻辑核 4、超线程 super thread 技术 5、各种cpu的计算方式物理 physical CPU的个数&#xff1a; physical id逻…

el-dropdown 在火狐浏览器,下拉框先被其他元素覆盖1s后才置于最上层?

问题描述&#xff1a; element-ui组件&#xff0c;el-dropdown使用火狐浏览器打开时&#xff0c;下拉框会被其他元素覆盖&#xff0c;大约1s后才会完全置于最上层。 原因&#xff1a; 目前只觉得是官网自带的问题&#xff0c;有大佬知道更好的解决办法&#xff0c;请随时留言&a…

01_introduction_to_diffusers_CN

&#x1f917; Diffusers 介绍 来源&#xff1a;https://github.com/huggingface/diffusion-models-class/blob/main/unit1/01_introduction_to_diffusers.ipynb 预备知识 在进入 Notebook 之前&#xff0c;你需要: &#x1f4d6; 阅读第一单元的材料&#x1f917; 在 Hugg…

安科瑞智能操控装置产品在上海特斯拉工厂配电工程的应用

安科瑞 崔丽洁 1 概述 2018年10月17日&#xff0c;上海市临港管委会表示&#xff0c;特斯拉&#xff08;上海&#xff09;有限公司已成功摘得上海临港装备产业区Q01-05地块864885平方米&#xff08;合计1297.32亩&#xff09;的工业用地&#xff0c;并与上海市规划和国土资源管…

bpf对内核的观测

目录 1 bpftrace常用命令1.1 列出bpftrace 相关命令的list1. 2bpftrace -e 是执行1.3 查看参数 -lv 2 bpftrace 可以用到的变量3 高级3.1 内置函数3.2 文件系统3.3 内核内存 栈3.4 Malloc 调用 统计3.5 系统调用 brk 的 统计3.6 脚本调用 4 应用5 怎么串联起来呢 bpftrace 总的…

不写代码、构建一个开源的 ChatGPT,总共需要几步?|Hugging News #1020

每一周&#xff0c;我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新&#xff0c;包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等&#xff0c;我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息&#xff0…

PostGIS MultiPolygon挖洞

现象 在应用过程中&#xff0c;“我认为的”&#xff0c;1个点明明落在了2个多面上&#xff0c;结果却不同。其实你会发现&#xff0c;坐标点的数据是一样的&#xff0c;但是定义的方法不同&#xff0c;导致结果不同。 --基础数据-- CREATE TABLE public.test_geometry_4490 …

用Python解析HTML页面

用Python解析HTML页面 文章目录 用Python解析HTML页面HTML 页面的结构XPath 解析CSS 选择器解析简单的总结 在前面的课程中&#xff0c;我们讲到了使用 request三方库获取网络资源&#xff0c;还介绍了一些前端的基础知识。接下来&#xff0c;我们继续探索如何解析 HTML 代码&…

4.从字节码分析synchronized的实现原理

文章目录 0.前言章节回顾 同步块&#xff0c;同步静态方法&#xff0c;同步实例方法的字节码区别解析synchronized代码块的字节码 1. 基础知识1.1 synchronized关键字的作用和重要性1.2 Java对象监视器1.2.1 Java中的对象监视器概念1.2.2 对象监视器在多线程环境中的作用 2. 基…