半小时一篇文过完C语言基础知识点

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我,若你是真心学习可以送你书籍,指导你学习,给予你目标方向的学习路线,无套路,博客为证。

本文定位读者为小白读者,将使用最快的方法过完C语言基础知识,并且制作一个学生管理系统。由于是快速阅览,本文不会描述过多的其它知识,大部分知识点只是描述了如何进行使用,如何深入还需要各位努力;不过学习过了一遍内容后,学习起来也会较为容易。

目录

这篇文没有添加的指针内容可以看这篇:浅论指针(一)

你去约个会,你零基础的同学就学完C语言知识点过完了
《看聊天记录都学不会C语言?太菜了吧(1)我在大佬群里问基础问题没人理?
《看聊天记录都学不会C语言?太菜了吧(2)我说编程很容易你们不服?
《看聊天记录都学不会C语言?太菜了吧(3)代码都在谈恋爱难道你不知道?
《看聊天记录都学不会C语言?太菜了吧(4)原来我早就会编程了
《看聊天记录都学不会C语言?太菜了吧(5)打了一把游戏我学会了一个编程知识?
《看聊天记录都学不会C语言?太菜了吧(6)以前跟我说编程很难的给我站出来
《看聊天记录都学不会C语言?太菜了吧(7)下一篇文章告诉你牛郎是谁
《看聊天记录都学不会C语言?太菜了吧》(8)牛郎和织女竟有一个孩子?


作者简介

作者名:1_bit
简介:CSDN博客专家,2020年博客之星TOP5,蓝桥签约作者
博客地址:https://i1bit.blog.csdn.net


环境:

  • 系统:windows7
  • IDE:Devc
  • 面向读者:小白

一、HelloWorld

HelloWorld 是经典的编程入门程序,指在编写代码生成程序,运行该程序将会在程序中显示 HelloWorld。以下是一个 HelloWorld 的C语言代码:

#include<stdio.h>
int main(){printf("HelloWorld");
}

以上程序中 #include<stdio.h> 称为头文件,头文件我们可以理解成“将工具箱拿过来”这一件事。代码 #include<stdio.h> 中,#include<> 相当于一只手,stdio.h 为需要拿过来的工具箱名。那为什么要拿这个工具?是因为我们在这个代码中将会用到这个工具箱中的工具。

int main(){} 为一个程序的入口,什么是程序的入口呢?其实就像医院或者一些场所,总有一个大门规定从此进入,否者当客户想要进入这个场所时将会找不到入口。而这个main就是我们这个代码的入口,里面具体的内容就写在main后面的花括号{}中。

花括号中的代码是 printf("HelloWorld");,其中printf()叫做printf函数,其实函数这个术语我们可以理解成一个功能或者说工具,printf()是存放在stdio.h 中的工具,printf()可以用来显示你要显示的内容,在printf()圆括号中使用双引号引起你想要显示的内容即可。在这里需要显示的是HelloWorld。注意,一般情况下,每一句代码结束后需要使用分号进行结尾。

编译运行程序将会出HelloWorld:

二、变量

变量在C语言中我们可以当做是一个存放内容的容器,例如可以存一个数字、一个字符、小数等。变量有不同的类型,包括整型、字符型、浮点数;浮点数我们可以简单的理解成小数即可。

如果你想要创建一个整数类型的变量很简单,整数在C语言中使用int进行描述,随后我们在int后输入一个字符串或者字符就可以完成一个变量的创建,但是要注意,需要使用分号结束:

#include<stdio.h>
int main(){int a;
}

以上代码 int 是类型描述,a字符是这个变量的名字,此时就等于让计算机创建了一个名字标识为a,能存储整数类型的变量了。我们一般在创建一个变量时需要对变量初始化,初始化是指给这个变量一个值,让我们能够知道这个变量具体所存储的内容,所以可以这样写:

#include<stdio.h>
int main(){int a=0;
}

以上代码 int a=0; 使用等于号将0存入了a变量,等于号的作用则是将等于号右边的值存入左边的变量中。

变量可以使用printf()将其内容进行输出显示,代码如下:

#include<stdio.h>
int main(){int a=0;printf("%d",a);
}

以上代码 printf("%d",a); 将会把变量a的内容进行显示,其中 %d 是一个占位符,占位符则表示在此处占据一个位置,之后将会替换成一个值;在这句代码中,我们可以看见双引号后使用逗号对变量a进行了分隔,当运行printf()这一句代码时,将会输出printf圆括号内双引号后使用逗号分隔的第一个变量值。

在此我们需要注意,创建一个变量后,之后使用该变量不需要在此将类型符一起编写。就例如你跟你朋友介绍小a,只需要第一次介绍完毕,之后就直接说名字就认识了。

程序运行结果如下:

三、常量

变量在程序运行时是可变的,而常量不行。当你创建一个常量时给予了它值,那么之后的值都不能进行改变。我们先看一下变量在程序运行时改变内容是否可以:

#include<stdio.h>
int main(){int a=0;printf("%d",a);a=10;printf(" %d",a);
}

以上代码在显示了第一次a的值后再次改变了a里面的内容为10,之后再次输出显示,将为等于10:

接下来看下常量。常量只需要在创建一个变量时使用 const 进行修饰即可:

#include<stdio.h>
int main(){const int a=0;printf("%d",a);a=10;printf(" %d",a);
}

此时我们编译代码将会出错:

四、变量运算

变量之间是可以相互相加减的,例如正常的加减法、乘除法等。首先我们可以创建两个变量:

int a=10;
int a1=20;

aa1相加并且显示就可以写成如下代码:

#include<stdio.h>
int main(){int a=10;int a1=20;printf("%d",a+a1);
}

以上代码printf("%d",a+a1);中,%d是个占位符,将会输出aa1相加后的值。之前解释过,%d将会显示引号后逗号隔开的第一个值,在这里a+a1是一个值,将会先运算,然后进行相加,结果为:

我们也可以同时显示aa1的值:

#include<stdio.h>
int main(){int a=10;int a1=20;printf("%d %d",a,a1);
}

以上代码printf中,第一个%d 显示引号后第一个逗号隔开的a值,第二个%d将会显示逗号隔开的第二个值a1。结果为:

同时一行创建两个变量以及乘法运算可以写成:

#include<stdio.h>
int main(){int a=10,a1=20;printf("%d",a*a1);
}

五、输入

在C语言中可以从键盘中输入一个值并且赋值给一个变量。使用一个工具叫做scanf()函数,它也存放在stdio.h这个头文件工具箱中。以下是scanf()的使用方法:

#include<stdio.h>
int main(){int a=10;printf("%d",a);scanf("%d",&a);printf("%d",a);
}

以上代码首先创建了一个变量a等于10,随后显示a的值,之后使用了scanf("%d",&a);,在这个代码中,%d表示接收即将要输入的值,&a表示取到a的地址,并且把输入的值存到变量a中。其实%d是一个只代表整数类型的占位符。最后再输出a的值,结果如下:

六、逻辑

在C语言中,可以使用if语句对逻辑进行判断,例如判断用户输入的数是否大于10。示例代码如下:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a>10){printf("%d",a);}
}

以上代码使用了if语句对输入的值进行判断,在使用scanf后将值存入了变量a中,之后使用if语句在if语句后的圆括号中输入条件,如果这个条件成立则运行后面花括号的代码printf("%d",a);,如果条件不正确,那么则不会执行其它代码。

输入1,不显示其他代码,因为不大于10。

输入11,条件成立,执行花括号内的代码:

我们还可以在if语句后输入其它代码表示已经执行完if语句:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a>10){printf("%d",a);}printf("if 语句已经执行完毕");}

运行结果如下;

七、if else

if 语句还有一个else 分支,else分支用于在条件判断错误后执行:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a>10){printf("条件成立,输入值是 %d",a);}else{printf("条件错误,输入值是 %d",a);} }

以上printf语句中有其他字符串以及占位符 %d,此时其它字符串照原样输出显示,%d将会替换成变量a的值:

八、if else if

使用if else if语句可以为if语句判断多个条件。

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a==1){printf("a是 %d",a);}else if(a==2){printf("a是 %d",a);} else if(a==3){printf("a是 %d",a);} else if(a==4){printf("a是 %d",a);} else{printf("条件都不对");}}

以上代码使用了else if语句,在else if语句中可以增加多个判断条件,判断a的值为什么。在C语言中使用两个等于号表示判断左右两边的值是否相等。

九、逻辑运算

在C语言中,使用一个if语句也可以判断多个条件,这时需要使用逻辑判断符&&逻辑与、||逻辑或。例如你需要判断小于10以内的偶数,那么就是两个条件;其一需要小于10,其二需要能够被2整除,而且这两个条件是同时都要满足的,既要小于10,也要能够被2整除。例如现在有一个变量a存储的是用户输入的数,这两个条件就可以写成 a<10a%2==0,这两个条件中的%是取模运算,指的是取余数,余数为0则表示能够判断被2整除。

那么如何使用if语句同时判断这两个条件呢?其实只需要在if语句中使用&&将两个条件连接即可:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a<10 && a%2==0){printf("条件成立");}else{printf("条件不对");}}

以上代码中,if语句后的圆括号中输入条件,在这里使用两个&&将两个条件进行了连接,表示两个条件都是要同时满足。a%2==0表示取余数后结果要为0,运行结果如下:

如果只需要满足其中一个条件,只需要将&&换成||即可:

#include<stdio.h>
int main(){int a=0;scanf("%d",&a);if(a<10 || a%2==0){printf("条件成立");}else{printf("条件不对");}}

输入12,能够被2整除,不必小于10,满足条件其一即可:

十、循环

循环在C语言中可以对某一段代码块重复执行。示例代码:

#include<stdio.h>
int main(){int a=0;while(a<10){printf("重复");a=a+1;} 
}

以上代码首先创建了一个变量a,里面存储的内容是0,随后使用一个while进行循环。while是重复的关键字,你可以当作一个魔法咒语,直接使用while在后面的圆括号中是while循环的条件,在这里是a<10,意思是只要a这个变量的存储值不大于10,那么就会一直循环;圆括号后的花括号中是需要重复的代码,在这里是printf("重复");a=a+1,每次重复执行代码都会显示重复,并且a等于自身加1再给予自身,这样a变量每重复一次就会增加1,第一次是1第二次为2,总有一次会超过10,超过10则会跳出循环不再执行。结果如下:


为了更直观的查看结果,我们在printf语句中增加一个换行符\n,我们可以理解\n为一个特殊功能字符串,使用后每次显示到该位置就会换到下一行:

#include<stdio.h>
int main(){int a=0;while(a<10){printf("重复\n");a=a+1;} 
}

结果为:

除了while循环我们还可以使用一个for循环,跟while循环一样,都是循环作用:

#include<stdio.h>
int main(){int a=0;for(a=0;a<10;a++){printf("重复\n");} 
}

以上代码forwhile一样是一个关键字,你可以当作是一个魔法咒语,在圆括号中使用分号分隔了a=0a<10a++,其中a=0只会运行一次,表示将0存入a,随后a<10为这个for循环的循环条件,如果条件不对将会跳出循环,每次for循环运行a<10都会运行一次,a++等于a=a+1,表示a变量自增1,此时每次循环a变量就会加上1,总有一次会跳出循环。结果为:

十一、结构体

结构体简单的来说是一个数据的类型,跟int整型一样,都是一种数据类型,是有多个或其它数量的数据类型组成的一种结构,其它数量的数据类型可以是整形等。代码示例:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming; 
}

以上代码使用一个 struct human 表示创建一个结构体,这个结构体叫做human,花括号内表示这个结构体拥有什么属性;int age;用来存储年龄,char sex;中的char表示字符类型的数据,跟int不一样,char是值!@#¥……&*a之类的单个字符数据,char name 表示存储一个姓名代号。struct human xiaoming; 表示创建一个结构体类型的数据叫做小明,其实就跟int a一样,struct human只是表示这是结构体 human的数据,xiaoming值名称。

我们看一个完整的使用示例:

#include<stdio.h>void main(){struct human{int age;char sex;char name;} ;struct human xiaoming; xiaoming.age=10;xiaoming.sex='T';xiaoming.name='M';printf(" age 为:%d\n",xiaoming.age);printf(" sex 为:%c\n",xiaoming.sex);printf(" name 为:%c\n",xiaoming.name);
}

以上代码 xiaoming.age=10; 表示xiaoming这个结构体类型数据中有一个叫做age的属性,使用小数点加属性名进行赋值,那么就表示将这个值存储到这个属性中;xiaoming.sex='T';表示存储T这个字符到sex这个户型中,字符类型数据需要使用单引号引起来,其中xiaoming.name='M';也是一样;随后使用printf进行输出时xiaoming.age就表示在这里使用age这个属性的值进行输出,%d表示输出的这个变量是个整数;下一句printf语句中使用的占位符为%c,表示的是这个位置即将输出一个字符类型的数据,字符类的数据使用的是%c,而整数则是使用的是%d。

数组

在之前的学习中我们使用了变量存储单个的值,那如何使用一个容器存储多个值呢?这个时候可以使用数组。顾名思义,数组就是一个值的组合,例如示例:

#include<stdio.h>void main(){int a[]={1,2,3,4,5,99,888};}

以上代码使用int 描述了一个名称为a的数组,其中方括号[]表示数组,在等于号右边使用花括号将要存储的值括起来,并且使用逗号进行分隔,这样就创建好一个数组了。那如何显示数组内的值呢?这个时候我们可以使用数组名加下标去进行取值,例如我想取第一个并且显示那么就可以写成 printf("%d",a[0]);,在C语言中,是从0开始数数的,所以第一个我们使用的是a[0],第二个取值我们可以写成printf("%d",a[1]);;我们可以对这些位置的值进行重新的赋值例如 a[0]=11,示例如下:

#include<stdio.h>void main(){int a[]={1,2,3,4,5,99,888};printf("%d\n",a[2]);a[2]=555;printf("%d\n",a[2]);
}

以上代码显示a[2]的值为3,并且修改a[2]的值为555再次输出,结果如下:

那如何显示所有数组a的值呢?这个时候需要使用循环,因为我们数组的取值是通过描述数组第几个值进行存取,我们称为下标,下标从0到数组所存储的长度为最大,此时使用循环,设置一个变量从0开始即可取出数组内所有的内容:

#include<stdio.h>void main(){int a[]={1,2,3,4,5,99,888};int i;for(i=0;i<7;i++){printf("%d\n",a[i]);}}

以上代码使用for循环,对数组进行读取,由于数组长度最大为7,所以需要小于7,最后再使用变量i作为数组下标即可,结果如下:

数组也可以先指定长度最后赋值:

#include<stdio.h>void main(){int a[10];int i;for(i=0;i<10;i++){a[i]=i;}for(i=0;i<10;i++){printf("%d\n",a[i]);}}

以上代码我们使用for循环设置数组a里面的内容,a[10]表示数组a的长度为10,能存储10个值。随后使用for循环设置数组a的内容,第一次为1第二次为2以此类推,最后再使用循环进行输出,结果如下:

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

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

相关文章

php变量的判空和类型判断

&#xff08;1&#xff09;var_dump(); 判断一个变量是否已经声明并且赋值&#xff0c;并且打印类型和值 <?php $a; var_dump($a);//输出null<?php var_dump($a);//输出null<?php$a 10; var_dump($a);//输出 int 10&#xff08;2&#xff09;isset() 判断一个变量…

【Envi风暴】Envi插件大全:多波段拆分工具的巧妙使用

很多场合下需要做波段合成,比如波段432合成赋予红绿蓝,构造标准假彩色等等。合成后的文件通常包含多个单波段文件,在Envi中使用layer stacking工具将多个单波段数据合成为一个文件,如下所示: 那么问题来了,合成后的数据该怎样拆开为原来的单波段呢?今天我们就来学习一种…

php表格怎么合并单元格格式化,table标签的结构与合并单元格的实现方法

1.示例代码&#xff1a;复制代码 代码如下:#1234一个完整的例子&#xff1a;复制代码 代码如下:#FirstnameLastnamePhoneQQ1qianshou111111111111111111112qianshou111111111111111111113qianshou111111111111111111114qianshou111111111111111111112.合并上下的单元格(rowspan…

《看聊天记录都学不会C语言?太菜了吧》(9)老公饼真的有老公送?

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

@Springboot搭建项目controller层接收json格式的对象失败

今天在使用swagger2测试的时候出错 1、requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容&#xff0c;比如说&#xff1a;application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。 2、 通过req…

『技术群里聊些啥』HttpClient 如何判断是同一终结点

前言官方文档对 HttpClientHandler.MaxConnectionsPerServer 属性有如下说明&#xff1a;获取或设置使用 HttpClient 对象发出请求时允许的最大并发连接数&#xff08;每个服务器终结点&#xff09;。请注意&#xff0c;该限制针对每个服务器终结点&#xff0c;例如&#xff0c…

【Envi风暴】Envi 5.3 SP1经典安装手把手图文教程(含补丁文件)

Envi 5.3具有传感器和数据支持、图像处理和显示、用户界面、二次开发等新功能,本文讲解Envi 5.3 SP1完全安装教程。 下载后的软件包目录如下所示: 目录 一、Envi 5.3 SP1安装 二、Envi 5.3 SP1下载地址 一、Envi 5.3 SP1安装 点击IDL_ENVI5.3 SP1win64.exe,开始安装,…

《看聊天记录都学不会C语言?太菜了吧》(10)程序媛聪明绝顶了

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

遥感方法研究张掖市1999-2010年土地利用变化

【方法思路】:本文选取张掖地区两期影像(Landsat 1999-07-07,2010-09-07),用监督分类方法获取各期土地利用类型,与已有的土地利用现状矢量图(landuse2000)相叠加,通过对比分析,进而得出张掖市1999-2010年间土地利用变化情况。 一、实验数据 采用Landsat Tm影像,原始…

【MongoDB】递归获取字段更新表达式,更新复杂数据类型对象

在实际更新Mongo对象时发现&#xff0c;原有的更新代码无法更新复杂的数据类型对象。恰好看到张占岭老师有对该方法做相关的改进&#xff0c;因此全抄了下来。 总的核心思想就是运用反射与递归&#xff0c;对对象属性一层一层挖掘下去&#xff0c;循环创建父类及之类的更新表达…

java openxml 操作 word,openxml word转成xml

word2007无法打开Office Open XML 文档由于种种原因&#xff0c;如程序安装错误、注册表被修改&#xff0c;或系统被病毒侵害等。有时候会造成WORD 2007无法打开.DOC文档的问题&#xff0c;常规的处理办法(右键选择“打开方式”)无效。可以试试如下的方法 &#xff1a;1.打开注…

聊一聊CLR源码中的 #define 是怎么玩的

一&#xff1a;背景 如果大家看过 CLR 源码&#xff0c;会发现里面有很多 #define 宏定义,比如说 fusionhelpers.hpp 头文件里。如果你不熟悉 C &#xff0c;看到这些 #define 应该会很晕的&#xff0c;这篇我们就来简单聊聊 define 的玩法&#xff0c;其实说白了很简单, #defi…

《看聊天记录都学不会C语言?太菜了吧》(11)2分钟领悟数组

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 本系列文章将会以通俗易懂的对话方式进行教学&#xff0c;对话中将涵盖…

基于CentOS 7配置Nginx正向代理

Nginx是一款以轻量级、低内存开销、支持缓存、支持反向代理&#xff0c;负载均衡&#xff0c;电子邮件服务而著称。对于鲜为人知的是&#xff0c;它还可以作为一个简单易用的正向代理服务器。本文简要描述这个正向代理功能并给出演示&#xff0c;供大家参考。 有关Nginx的安装请…

【ArcObject开发】实验:ArcObject地图开发基本操作

ArcObjects,是基于Microsoft COM技术所构建的一系列COM组件集,是在ArcGIS Desktop平台基础上的二次开发,开发语言为VBA(Vistal Basic for Application)。下面将AO开发的中的一系统基本操作做一简单的说明。 下图是功能主面板,有三个主要功能:地图漫游、地图制图和创建元素…

[Python MoviePy 音视频开发零基础到实战] 一、用6条代码为你的视频裁剪以及添加水印

一、MoviePy 安装及配置 在 Python 有一个音视频开发模块 MoviePy&#xff0c;MoviePy 依赖于 FFmepg&#xff0c;使用 MoviePy 可以对音视频进行编辑&#xff1b;例如视频合成、视频处理、视频特效等。 在 Python 下直接使用 pip 工具进行安装即可&#xff1a; pip install…

C# 使用ILogger接口编写日志

.NET 有几种不同的日志记录和跟踪工具&#xff0c;还有许多不同的第三方日志记录程序。尝试将一个应用程序从一种日志记录技术更改为另一种日志记录技术不是一件容易的事情&#xff0c;因为日志记录 API 的使用分布在整个源代码中。要使日志记录独立于任何日志记录技术&#xf…

html页面调用php常量,js中的常量变量以及html文档三种引入js的方式

js 是基于事件驱动的异步单线程的脚本编程语言&#xff0c;它的全称是 JavaScript&#xff0c;虽然里边有个 java 字样&#xff0c;但是和 java 编程语言一点关系都没有。它是一种脚本语言&#xff0c;基于解释器执行&#xff0c;它是边解释便执行的语言。浏览器控制台 Console…

【ArcGIS风暴】基于ArcGIS空间分析功能研究渭河流域镇驻地空间分布格局

【内容提要】:基于ArcGIS平台,借助空间分析的方法,用空间平滑法(基于移动搜索法FAC和核估计)分析渭河流域镇驻地的分布特征。 实验过程 1. 加载数据 渭河流域的居民点(Resident_point.shp),DEM(等高线)、水系(线)、道路(线)空间数据,如下图所示。

基于iSroll 5.0实现的上拉加载和下拉刷新插件

Updownload.js 基于iSroll 5.0实现的上拉加载和下拉刷新插件 移动端效果比较好&#xff0c;开发者工具打开后&#xff0c;需要刷新下页面。 [演示地址:] https://chenyk2016.github.io/upDownLoad/demo.html [github地址:] https://github.com/chenyk2016/upDownLoad/ 效果图 1…