C语言入门笔记

初始C语言
#include<stdio.h>

int main()

{

 /*在双引号中间输入Hello World*/ 

printf(“Hello World”);

return 0;

}

C程序结构
一个C程序就是由若干头文件和函数组成。
#include<stdio.h>-----------------------------------------------包含头文件
int main() /这里没有主函数名称的/I

{
I
printf (“I love imooc!”); I--------------主函数
/看一下这里的打印语句是否正确/
I
return 0; I
} I
#include <stdio.h>就是一条预处理命令,它的作用是通知C语言编译系统在对C程序进行正式编译之前需
做一些预处理工作。
函数就是实现代码逻辑的一个小的单元。
注:在最新的C标准中,main函数前的类型为int而不是void

必不可少之主函数
一个C程序有且只有一个主函数,即main函数。
int main()-----主函数
这个道理就好比每个电梯只有一扇门,要想乘坐电梯的话就必须从这扇门进入;而main前面的int就是主函
数的类型,好比乘坐的这个电梯是什么材料做的。

printf()是格式输出函数,这里就记住它的功能就是在屏幕上输出指定的信息。
return是函数的返回值,根据函数类型的不同,返回的值也是不同的。
\n是转义字符,在WIKI中可以查看转义字符。
注意:C程序一定是从主函数开始执行的。

良好习惯之规范
在写C语言程序的时候为了书写清晰、便于阅读、便于理解、便于维护,在编写程序时应遵循以下规则:
1、一个说明或一个语句占一行,例如:包含头文件、一个可执行语句结束都需要换行;
2、函数体内的语句要有明显缩进,通常以按一下Tab键为一个缩进;
3、括号要成对写,如果需要删除的话也要成对删除;
4、当一句可执行语句结束的时候末尾需要有分号;
5、代码中所有符号均为英文半角符号。

程序解释——注释
注释是为了使别人能看懂你写的程序,也为了使你在若干年后还能看得懂你曾经写的程序而设定的。注释是
写给程序员看的,不是写给电脑看的。所以注释的内容,C语言编译器在编译时会被自动忽略。

C语言注释方法有两种:

   多行注释:  /* 注释内容 */ 

   单行注释:  //注释一行

#include <stdio.h>

int main()

{

//这是一首思念家乡的诗

printf("床前明月光,");

printf("疑是地上霜。");

printf("举头望明月,");

printf("低头思故乡。");

/*短短四句诗,写得清新朴素,明白如话。它的内容是单纯的,但同时却又是丰富的。

它是容易理解的,却又是体味不尽的。诗人所没有说的比他已经说出来的要多得多。

它的构思是细致而深曲的,但却又是脱口吟成、浑然无迹的。从这里,我们不难领

会到李白绝句的“自然”、“无意于工而无不工”的妙境。*/

return 0;

}

C中数据类型-标识符
编程时给变量或者函数起的名字就是标识符,C语言的标识符是不可以随便起名字的,必须遵守一定的规则。

C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须
是字母或下划线。在使用标识符时还有注意以下几点:

(1)标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同
时,则被认为是同一个标识符。

(2)标识符是严格区分大小写的。例如Imooc和imooc 是两个不同的标识符。

(3)标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。

(4)标识符不能是C语言的关键字。想了解更多C语言关键字的知识,请查阅WIKI。

变量及赋值
变量就是可以变化的量,而每个变量都会有一个名字(标识符)。变量占据内存中一定的存储单元。使用变
量之前必须先定义变量,要区分变量名和变量值是两个不同的概念。就好比:住在房间里的客人与房间号是
两个不同的概念。

变量定义的一般形式为:数据类型 变量名;
多个类型相同的变量:数据类型 变量名, 变量名, 变量名…;
变量名和标识符的命名规范完全相同。
注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的。
变量的赋值分为两种方式:1.先声明再赋值 2.声明的同时赋值,例如:
//先声明,再赋值
int num;
num = 100;
//声明的同时赋值
int x = 10;

基本数据类型
在我们玩游戏的时候,游戏中的角色是有类型的,有敏捷型、力量型、法术型等等。同样C语言中的数据也是
有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。如图所示:
|整型
|基本类型|字符型 |单精度型
| |实型(浮点型)|双精度型
|
|
| |枚举类型
| |数组类型
数据类型|构造类型|结构体类型
| |共用体类型
|指针类型
|空类型

这里我们先给大家讲解基本数据类型中最简单也是最常用的整型、实型与字符型。
数据类型 说明 字节 应用 示列
char 字符型 1 用于储存单个字符 char sex = ‘M’;
int 整型 2 用于储存整数 int height = 18;
float 单精度浮点型 4 用于储存小数 float price = 11.1;
double 双精度浮点型 8 用于储存位数更多的小数 double pi = 3.1415926;

整型数据是指不带小数的数字。生活中有很多信息适合使用整型数据来表示,比如:人的年龄、班级的人数、
书的总页数等等。因此整型的类型比较多:
数据类型 说明 字节 取值范围
int 整型 2 (-32768~32767)-2^15 ~ 2^15-1
short int 短整型(int可以省略) 2 (-32768~32767)-2^15 ~ 2^15-1
long int 长整型(int可以省略) 4 (-2147483648~2147483647)-2^31 ~ 2^31-1
unsigned int 无符号整型 2 (065535)02^16-1
unsigned short int 无符号短整型(int可以省略)2 (065535)02^16-1
unsigned long int 无符号长整型(int可以省略)4 (04294967295)02^32-1

注:int、short int、long int是根据编译环境的不同,所取范围不同。而其中short int和long int至少是表中
所写范围,但是int在表中是以16位编译环境写的取值范围。另外 c语言int的取值范围在于他占用的字节数 ,
不同的编译器,规定是不一样。ANSI标准定义int是占2个字节,TC是按ANSI标准的,它的int是占2个字节的。
但是在VC里,一个int是占4个字节的。

浮点数据是指带小数的数字。生活中有很多信息适合使用浮点型数据来表示,比如:人的体重(单位:公斤)、
商品价格、圆周率等等。因为精度的不同又分为3种:
数据类型 说明 字节 取值范围
float 单精度型 4 -3.410-38~3.4*1038
double 双精度型 8 -1.7
10-308~1.7*10308
long double 长双精度型 16 -1.2*10-4932~1.7*104932

注:C语言中不存在字符串变量,字符串只能存在字符数组中,这个后面会讲。
#include <stdio.h>

int main()

{ int age = 15, height = 162;

float    weight = 82.5;

char    isfat = 'y';

printf("年龄:%d 岁\n", age);

printf("身高:%d CM\n", height);

printf("体重:%f KG\n", weight);

printf("是否属于肥胖儿童:%c\n", isfat);

/*%d,%f,%c此类符号在后面会有讲解*/

return 0;

}

格式化输出语句
格式化输出语句,也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上
显示。这样做的好处,是有利于计算机能够准确的将我们所要类型数据给我们。

其格式为:printf(“输出格式符”,输出项);

C语言中的常用格式化符:
格式符 说明 举例
%d 带符号十进制整数 int a=10;print ("%d",a);输出结果为10
%c 单个字符 char x=‘a’;print ("%c",x);输出结果为a
%s 字符串 printf("%s",“mooc”);输出结果为mooc
%f 6位小数 float a=1.23;print("%f",a);输出结果为1.23
当输出语句中包含普通字符时,可以采用以下格式:
printf(“普通字符输出格式符”, 输出项);
如:
int age = 18;
printf(“小明今年%d岁\n”, age);
如果要输出多个变量的并指定变量的位置时候,格式符还可以连用,变量之间需要用逗号隔开,如:
int a = 10;
float b = 7.56;
char x = ‘c’;
printf("整数:%d,小数:%f,字符:%c,a,b,x);
输出结果为: 整数:10,小数:7.560000,字符:c
注意:格式符的个数要与变量、常量或者表达式的个数一一对应
#include <stdio.h>

int main()
{

    int age = 18;

float height = 1.85;

char unit = 'm';

printf("小明今年%d岁\n", age);

printf("小明身高%F%c\n", height,unit);

printf("小明现在在慕课网上学习IT技术");

return 0;

}

不可改变的常量
在程序执行过程中,值不发生改变的量称为常量。C语言的常量可以分为直接常量和符号常量。

直接常量也称为字面量,是可以直接拿来使用,无需说明的量,比如:
整型常量:13,0,-13;
实型常量:13.33,-24.4;
字符常量:‘a’,‘m’
字符串常量:“i mooc!”
下面的代码分别打印这四种直接常量:
printf("%d\n",100); //整型常量
printf("%f\n",3.14); //实型常量
printf("%c\n",‘A’); //字符常量
printf(“i mooc!”); //字符串常量

在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般
形式为:
#define 标识符 常量值

符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分。下面是一个使
用符号常量的小例子:

注意:常量是不可改变的,主函数中不能出现赋值即使赋的值与本身一样

#include <stdio.h>

#define POCKETMONEY 10 //定义常量及常量值

int main()

{

printf("小明今天又得到%d元零花钱\n", POCKETMONEY);

return 0;

}

自动类型转换
数据类型存在自动转换的情况,比如:
char c=‘a’;
int x;
double d;
x=c; //字符类型可以自动转换为整型
d=x; //整型可以自动转换为浮点类型

自动转换发生在不同数据类型运算时,在编译的时候自动完成。自动转换遵循的规则就好比小盒子可以放进
大盒子里面一样,下图表示了类型自动转换的规则。
char—>int—>double
|________>|
char类型数据转换为int类型数据遵循ASCII码中的对应值,ASCII码请查看WIKI。

注:字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换
#include <stdio.h>

int main()

{

char c = 'a';

int n = c  ;      //将c赋值给n

float f =   c;    //将c赋值给f

double d =  c;    //将c赋值给d

printf("%d\n",n);

printf("%f\n",f);

printf("%lf\n",d);

return 0;

}

强制类型转换
强制类型转换是通过定义类型转换运算来实现的。其一般形式为:
(数据类型) (表达式)
其作用是把表达式的运算结果强制转换成类型说明符所表示的类型,例如:
double tempone=6.777;
int temptwo=(int)tempone;//强制转换为int类型
printf("%f\n",tempone);
printf("%d\n",temptwo);
结果:
6.777000
6

在使用强制转换时应注意以下问题:

1、数据类型和表达式都必须加括号,如把(int)(x/2+y)写成(int)x/2+y则成了把x转换成int型之后再除2再与y
相加了。

2、转换后不会改变原数据的类型及变量值,只在本次运算中临时性转换。

3、强制转换后的运算结果不遵循四舍五入原则。

#include <stdio.h>

int main()
{

double num = 2.5;

int a= (int)num;     //定义浮点型变量num并赋值为2.5

printf("num的整数部分是%d\n", a);

return 0;

}

#include <stdio.h>

int main()
{

double num = 2.5;

num= (int)num;     //定义浮点型变量num并赋值为2.5

printf("num的整数部分是%f\n", num);

return 0;

}

运算符号
我们上小学的时候都学过各种运算,如:加法运算、乘法运算、混合运算等,而运算就要用到运算符,如:+、
-、×、÷等等。

在C语言中同样有运算符,只是写法可能有所不同。先说一下C语言中的运算是什么?C语言中的运算就是对
数据进行操作、处理的过程。那么运算符又干什么的呢?运算符就是指定该运算的处理方式。

那么C语言中又有哪些运算符呢?

如下所示:

  ※ 算术运算符

  ※ 赋值运算符

  ※ 关系运算符

  ※ 逻辑运算符

  ※ 三目运算符

算术运算符
C语言基本算术运算符如下表:
名称 运算符号 举例
加法运算符 + 2+10=12
减法运算符 - 10-3=7
乘法运算符 * 2*10=20
除法运算符 / 30/10=3
求余运算符(模运算符) % 23%7=2
自增运算符 ++ int a=1;a++
自减运算符 – int a=1;a–

除法运算中注意:

如果相除的两个数都是整数的话,则结果也为整数,小数部分省略,如8/3 = 2;而两数中有一个为小数,结
果则为小数,如:9.0/2 = 4.500000。

取余运算中注意:

该运算只适合用两个整数进行取余运算,如:10%3 = 1;而10.0%3则是错误的;运算后的符号取决于被模
数的符号,如(-10)%3 = -1;而10%(-3) = 1。

注:C语言中没有乘方这个运算符,也不能用×,÷等算术符号。
#include <stdio.h>

int main()

{

int x,y;

x = 10;

y = -3;

printf("x+y=%d\n",x+y     );

printf(“x-y=%d\n”,x-y );

printf("x*y=%d\n",x*y     );

printf("x/y=%d\n",x/y     );

printf("x%%y=%d\n",x%y     );

return 0;

}

注意:%在输出串中是用来做转义用的,输出的内容取决于它后面的字符,比如%d代表输出的是一个整数,
%s输出一个字符串,因此要想输出%,就必须在%后再加一个%。

自增与自减运算符
自增运算符为“++”,其功能是使变量的值自增1;自减运算符为“–”,其功能是使变量值自减1。它们经
常使用在循环中。自增自减运算符有以下几种形式:
运算表达式 说明 运算规则
++a a自增1后,再取值。 ||
–a a自减1后,再取值。 || 先运算,再取值
a++ a取值后,a的值再自增1。 ||
a-- a取值后,a的值再自减1。 ||先取值,再运算

注意:无论是a++还是++a都等同于a=a+1,在表达式执行完毕后a的值都自增了1,无论是a–还是–a都等同于
a=a-1,在表达式执行完毕后a的值都自减少1。
#include <stdio.h>
int main()
{

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值