【C语言从入门到入土】第二章初识

2024-06-05 09:20

本文主要是介绍【C语言从入门到入土】第二章初识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

第二章 初识

文章目录

  • 第二章 初识
    • 1.代码编译工具
    • 2.c程序的基础框架
    • 3.数据的表现形式
      • 变量
      • 1.要先定义后使用(变量名的定义是由自己决定的,一般倾向于顾文生义)
      • 2.那么如何命名变量名,以及命名规则
      • 3.数据类型
        • 3.1整型数
        • 3.2字符型,,ASCII码
        • 3.3浮点类型(小数)
        • 3.4 变量的存储类型
          • 1.static
          • 2.extern
      • 4.强制转换
      • 常量
      • 1.整型常量
      • 介绍几个概念
      • 1.自加自减运算符
      • 2.三目运算符
    • 4.输入输出
      • 4.1printf–打印
      • 4.2 scanf /扫描键盘
    • 5.其他
    • 6.结语:编程案例——了解为主

1.代码编译工具

配置环境变量———-目的是命令终端中的任意文件夹能识别gcc指令

安装gcc工具———–mingw—下载地址(http://www.mingw-w64.org/doku.php)

博客参考:https://blog.csdn.net/Leo_LiangXuYuan/article/details/86763735

使用

  1. 打开命令终端cmd

  2. cd指令跳到代码文件夹

  3. 编译和运行,-o选项,指定生成的程序名字

  4. gcc test.c -o pro
    指令 c文件 生成选项 新程序名字(a.exe)

  5. gcc test.c -g 让你的程序变成可调试(不需要了解那么深了,一般在程序崩的莫名其妙,不知道哪里出了问题可以试一试)

  6. gdb a.exe 之后输入 r 进入待运行状态(之后再运行就可以看到是哪里出现了问题了)

  7. 退出的话输入 q(quit),然后y(yes确认)

    ipconfig(打开局域网配置)

2.c程序的基础框架

“最小组成”,写代码前先敲好

#include <stdio.h>	//编译预处理指令
int main()			//程序的入口主函数main
{/***你要写的代码************************************/return 0;		//程序退出前返回给调用者(操作系统)的值//程序(函数,功能)结束标志
}

3.数据的表现形式

变量

1.要先定义后使用(变量名的定义是由自己决定的,一般倾向于顾文生义)

int a = 3;
int b ;
b=a+1;

请添加图片描述

一个内存空间就像一个蜂巢快递柜一样,里面的快件会变,就像内存的数据会变一样,所以叫做变量

在这里插入图片描述

2.那么如何命名变量名,以及命名规则

1.由字母数字下划线组成,且只能以下划线或者字母开头,不能以数字开头

int a
int data
int Mydata
int _mydata
int mydata
int 1data   错误

2.顾名思义,一看就可以知道是什么意思,这个要考验你的英语水平了哈哈哈哈!不会就写拼音吧,注意要区分大小写

在这里插入图片描述

3.驼峰命名法

int secondsPerYear
int yiNianDuoShaoMiao
SecondsPerYear
second_Per_Year
_myMarkData

总之总之,比你直接int a;可强太多了

3.数据类型

在这里插入图片描述

计算机在内存中的存储方式是补码。

原码:符号位加上真值的绝对值,用最高位(第一位)来表示符号位,其余表示数值
反码:正数的反码是其本身,负数的反码是在其符号位不变的前提下,其余按位取反
补码:正数的补码是其本身,负数的补码是在反码的基础上+1

在这里插入图片描述

3.1整型数

整数,,,int data = 10,

4个字节(一个字节8位,一共32位)c51(2) 65535 int a = 1000000; for

3.2字符型,,ASCII码

char data3 = ‘c’,1个字节,8bit,必须是单字符‘ ‘

在这里插入图片描述

3.3浮点类型(小数)

float data2 = 3.2,,,,,,,4个字节,,,,,32bit

3.4 变量的存储类型
1.static

static变量称为静态存储类型的变量,既可以在函数体内,也可以在函数体外说明情况。(默认为0)

局部变量使用static修饰有以下特点:

  • 在内存中以固定地址存放,而不是以堆栈形式存放
  • 只要程序还没有结束,就不会随着说明他的程序段的约束而消失,他下次再调用该函数,该存储类型的变量不会重新说明,而且还保留上次调用存储。
2.extern

当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量(类似于模块化编程)

extern称为外部参照引用型,使用extern说明的变量是想引用在其他文件的中函数体外外部声明的变量。

static修饰的全部变量,其他文件无法使用。

4.强制转换

在前面加上(float)

例子:当两个数相除不能够整除时,需要进行强制转换,来得到后面的小数

/*****无强制转换********/
#include<stdio.h>
int main()
{int a =10;int b =3;float c;c =a/b;printf("%f",c);return 0;
}
/******做强制转换*******/
#include<stdio.h>
int main()
{int a =10;int b =3;float c;c =(float)a/b;printf("%f",c);return 0;
}

如果不做强制转换
会自动把小数点后面的省略

在这里插入图片描述

做完强制转换之后,完美!!!

在这里插入图片描述

常量

1.整型常量

常量是指在程序运行期间其数值不发生变化的数据。整型常量通常简称为整数。

整数可以是十进制,也可以是八进制,十六进制。例如:

十进制:15
八进制:21
  • 在程序运行过程中,其值不能改变

  • 符号常量 #define PI 3.14 (宏定义)

转义字符

在这里插入图片描述

介绍几个概念

C 语言自加 ++ / 自减 -- 运算符实际就是对变量本身做 +1 或者 -1 操作

1.自加自减运算符

(自加自减运算符均为单目运算)

1.只需要一个运算量。若运算符位于运算对象前面时,称为前缀运算,如++a和 - -a;

2.而运算符位于运算对象后面时,称为后缀运算符,如a++和a- -,自加和自减运算符的功能是将运算对象加1或减1后,再将结果保存到运算对象中。

前缀和后缀运算分别等价的运算如下:

前缀:a=2,b=3,b=++a;等价于a=a+1;b=a运算结果:a=3,b=3;
后缀:a=2,b=3,b=a++;等价于b=a,a=a+1运算结果:a=3,b=2;

a--		//每一次减1
a++		//每次自加1
#include <stdio.h>
int main(){int a =5;int b =6;printf("a=%d,b=%d\n",a,b);a++;b--;printf("a=%d,b=%d\n",a,b);++a;--b;printf("a=%d,b=%d\n",a,b);a=a+5;b=b-3;printf("a=%d,b=%d\n",a,b);return 0;
}

2.三目运算符

z = x>y?x:y 这句话的意思是,,x是否大于y,打个问号,如果是的话等于x,不是的话等y

4.输入输出

4.1printf–打印

输出表列中,,可以是数据类型,可以是一个表达式。

在这里插入图片描述

格式声明

1.原样输出,,printf(“hello,world”);

2.%占位符/格式字符——printf(“a=%d”,a);

在这里插入图片描述

d十进制整数
c单个字符,输出一个字母
s多个字符
x以16进制格式输出
p一般打印内存地址,也是16进制格式输出,输出地址,取变量地址的运算符号&

f————-重要的一个;

在这里插入图片描述

指定位数

在这里插入图片描述

在这里插入图片描述

%-m.nf

指定位数

在这里插入图片描述

以下了解即可

在这里插入图片描述

在这里插入图片描述

4.2 scanf /扫描键盘

!!!注意有坑,,
在这里插入图片描述

需要注意的地方

1.地址符号&,,不要忘记

在这里插入图片描述

也可以分开,3个变量,就3个scanf

2.原样输入

在这里插入图片描述

scanf格式中有什么字符,输入的时候也要输入!!!!!!!!!!比较坑爹的地方就是这里,设想一下如果我们不是写这段代码的人我们又怎么知道,需要原样的输入是什么呢,解决办法就是去掉。。直接%f%f%f

3.注意字符

在这里插入图片描述

4.混合输入,,,,,,,,,主要还是了解输入控制流程

在这里插入图片描述

!!!!!!!!!!!!!!涨知识的时候

在这里插入图片描述

在这里插入图片描述

5.其他

getchar();吸收空格符

putchar();

puts();

gets();//会涉及数组,,,后面再说

sgkbc1

后面的事后面再聊,,,恭喜你已经对C语言有了初步的认识,开启对下一章流程控制的认知

一个人如果总是太过于在乎他人的评价,就会失去自己。人生最怕的事之一就是把别人的眼光当成自己生活的唯一标准。到最后,既没有活成自己喜欢的样子,也没有活成自己想要的样子。

学会取悦自己,丰富自己,在努力的路上,美好才会回过头来拥抱你。与其总是感觉时间不够用,不如和时间做朋友,尽全力过好每一天。多点圆满,少些遗憾。

6.结语:编程案例——了解为主

在这里插入图片描述

不要看案例程序,,独立自主编写哈哈哈哈哈哈

在这里插入图片描述

如果不加getchar();吸收一下回车符的话,输入完一个字母之后直接跳完程序,,,,以下为改进

在这里插入图片描述

输入两个数,获得两个数加减乘除的值

在这里插入图片描述

编译一个密码

printf函数会了,putchar不会用…………

在这里插入图片描述
在这里插入图片描述


这篇关于【C语言从入门到入土】第二章初识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1032690

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

Linux操作系统 初识

在认识操作系统之前,我们首先来了解一下计算机的发展: 计算机的发展 世界上第一台计算机名叫埃尼阿克,诞生在1945年2月14日,用于军事用途。 后来因为计算机的优势和潜力巨大,计算机开始飞速发展,并产生了一个当时一直有效的定律:摩尔定律--当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。 那么相应的,计算机就会变得越来越快,越来越小型化。

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return