这真的是一篇零基础的C语言,如果是想要进阶的就不用看了,这是写给完全不懂编程想要学习的人的入门。
背景:
首先向John Von Neumann致敬,他是计算机体系的结构的奠基人。
C语言是贝尔实验室的产物,高效、可移植、功能强大且灵活。
正文:
要学习一个语言,要有一个编译器。
编好了一个程序有没有问题,运行一下试试。
先看一下最简单hello world程序,我这用的是DEV。
第一行的include是包含一个标准输入输出头文件的指令
我们在下面可能要用一下别人写好函数,所谓函数就是我给你一个输入,然后呢,你要给我一个输出,printf就是一个输出函数。
int main(){ }就是一个主函数。
在小括号里面要写输入,没有输入你也可以不写,int是返回值的类型,就是后面的return的东西的类型,大括号里面就是过程,就是怎么把输入变成输出的步骤。
printf("hello world.\n");
printf是一个头文件里面的函数,他所做的事情就是把后面他的小括号里双引号里的东西打出来。而\n是换行符,打完了提一行。语句结束后分号;
Data type 数据类型
int 整型:存放一个整数x,-32768<x<32767
float 浮点型:可以存放一个小数
char 字符型:可以放一个字符,abcd之类的
当然还有很多其他的类型,但这三个最常见,其他的话查一下就好。
我们为什么需要类型呢?因为当我们向计算机申请一块内存来放我们的变量的时候,计算机要知道他需要给我们多大的空间,不同的类型分配的空间不是一样大的。
声明
当我们要创造一个变量的时候,我们要声明他的类型,如:
int x;
char c;
我们给变量x一个类型int 那么计算机就给我们的X分配了一块int大小的内存,X就只能存放int型的东西,而c呢,也只能存放char型的字符,X是不能等于C的。
任何变量在被我们使用前,都需要声明。
我们在声明的时候也就给变量取了一个名字,这个名字最好要有意义,不然程序长了,你也不知道这是什么了。另外呢取名有规范,下划线、字母、数字区分大小写,以字母或者下划线开头,一般用字母开头,而且要避免使用关键字,比如说int char 又或者and if else之类的。
赋值
赋值用=,如:x=10;
左边是变量右边是值,值也可以是一串式子。提到式子就把 运算符也说了吧,+-*/这四个分别对应加减乘除,然后还有一个%取余数 5%2=1 5%3=2
注意,每一个语句结束后要写一个;(分号)不要忘记啊,另外中文和英文的符号不要弄错了,是英文的分号,不然真心不好找错误TAT
函数
printf(“”);
我们已经知道printf可以输出双引号里面的内容,但是比如说我想输出变量x的值,把x放在里面他却只会输出x而非X的值。
所以呢,我们需要一个占位置的东西,告诉程序,哪里需要代换成x的值,一般情况我们用%d,表示十进制,对于浮点型我们用%f.
通过上面的这个例子,我们发现这样我们并不能控制一个小数的位数,但是printf可以继续加语句%m.pX 其中P表示了小数点后几位,M表示了最小有多宽
scanf("%d",&x);
上面看了输出,现在就看一下输入函数。
首先是%d说明这是一个数字,并且呢,是一个十进制的数,(如果是浮点数勇气%f,字母用%c)然后是双括号外的&x。
&是一个取址符,现在的X是一个已经声明了以后的x,x有自己的内存空间,现在就是要把我们输入的那个数放到那个空间里面去,所以我们需要的是地址,就需要一个&问一下x你家在哪,然后放进去。
记住啊一定是地址,如果x本身是地址,到不必要,可是如果他仅仅只是一个变量,求加&,这个错误编译器看不出来,答案会各种奇怪的。
语句
选择语句
if-else
if(条件){
满足的话就执行这个大括号里面的命令 }
else{
不满足的话就这个里面的 }
在这里呢就说一下条件判断好了,除了运算符还有逻辑运算 与&& 这个两边的东西都成立才成立,或||一个成立就成立,非! 比如!=就是不等于
5>3||5>9
因为5>3所以即使后面的那个不成立也是成立的,就是执行第一个括号里面的
这个有一个升级版本的 嵌套使用
if ( ){
}
else if ( ) {
}
else……
以及switch
switch (表达式,算出来应该是整型){
case 常量 : 语句(和上面的表达式相等就执行)
case 常量 : 语句
……
default : 语句 (都不满足是执行)
}
条件表达式
表达式1?表达式2:表达式3
如果表达式1成立,那么执行2,否则执行3
循环语句
while先判断再执行
while (条件){
执行语句
}
do-while先执行在判断
do{
执行语句
}
while(条件)
for
for(循环变量的初值;条件;变量的变化过程){
执行语句
}
其中第一个5 是我输入的x的值
i++的意思是i=i+1是一种简便的写法,同理i--
在以前计算很慢的时代这个可以节约时间,现在吗,已经没有什么区别了
夏子的话:
很感激你可以看到这里,我知道我写得很渣,C语言最基础的就是这样,当然他的精华是指针的应用,我这里并没有提,因为那个比较难,然后可能过几天会写吧。
就上面所有的知识,你已经可以做很多多东西了,比如说两个分数的相加,还有打出波浪形的图案,或者输入一个两位数,然后你倒着打出来,把39变成93之类的。编译不成功是一件很正常的事情,有问题改就对了,谢谢,请多指教。