l一、初识c语言:
- 什么是c语言
- 第一个c语言程序
- 数据类型
- 常量 变量
- 字符串 转义字符 注释
- 选择语句
- 循环语句
- 函数
- 数组
- 操作符
- 常见关键字
- define定义常量和宏
- 指针
- 结构体
二.解释
1.什么是c语言
就像中文,英文等是人与人交流的语言。c语言是一种人与计算机交流的语言,人与计算机交流的语言经历了二进制,汇编语言,B语言,到现在的c语言。现在的c语言的标准为c99,利用这个标准进行统一。
2.第一个c语言程序
#include <stdio.h>
int main()
{
return 0;
}
#include <stdio.h>:include称为文件包含命令,意思是把<>或""内指定的文件包含到本程序中。被包含的文件通常是由系统提供的,扩展名为.h,还有一部分是自己编写的.h文件。stdio:standard input output.意为C语言的头文件中包括了各个标准库函数的函数原型。
int为整型,main函数运行结束后,返回一个整型值;
0就是一个整数,在main函数结束的时候被返回。
3.数据类型
char //字符串数据类型 1个字节
short //短整型
int //整型 4个字节
long //长整型 4个字节
long long //更长的整型 8个字节
float //单精度浮点数 4个字节
double //双精度浮点数 8个字节
4.*常量
1)字面常量
100,3.14这样的
2)const修饰的常变量
const int num = 10;
printf(“num = %\n”, num); //10
const 本质上还是一个变量
3)#define定义的标识符常量
#define MAX 100
{
int a = MAX;
printf(“%d\n”,a);
return 0;
} //100
4)枚举常量
//定义枚举类型
eume Sex
{
MALE, //枚举这种类型的可能取值就是枚举常量
FEMALE,
SECRET
};
int main()
{
printf("%d\n", MALE); //0
printf("%d\n", FEMALE); //1
printf("%d\n", SECRET); //2
return 0;
}
*变量
变量的作用域与生命周期
作用域:作用域是程序设计概念,通常来说、一段程序代码中所用到的名字并不总是有效/可用 的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
1、局部变量的作用域是变量所在的局部范围。
2、全局变量的作用域是整个工程。
int p = 5; //p在main函数外部是全局变量
int main()
{
printf("%d\n",p) //这里可以打印p的值
int a = 10;
{
int b = 20; //b在这里定义,这个括号内部就是b的作用域
printf("%d\n",b);
}
printf("%d\n",b); //这里报错,因为出了b的作用域
printf("%d\n",a); //这里可以打印a的值,因为a在外部
return 0;
}
生命周期:变量的生命周期指的是变量的创建和变量的销毁之间的一个时间段
1、局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
(只要是大括号内部的都是局部变量)
2、全局变量的生命周期是:整个程序的生命周期。
5.字符串+转义字符+注释
1)字符串
#include <stdio.h>
int main()
{
"abc"; //字符串:用双引号括起来
return 0;
}
存储字符串
#include <stdio.h>
int main()
{
char ch = "abc";//想要把abc存起来,但是这种写法是错误的,因为没有字符串类型,char只能存放一个字
//符,但是可以使用字符数组来存储字符串。
char arr1[] = "abc";
char arr2[] = {'a','b','c','\0'};//这样需要加上'\0',\0是字符串的结束标志。
printf("%s\n",arr1); //abc
printf("%s\n",arr2); //abc
return 0;
}
2)转义字符
\n:换行
观察以上代码运行结果,发现加了\n以后将会换行
int main()
{
printf("(hehe??)"); //??)---->三字母词------> ]
return 0; //结果为(hehe]
printf("(hehe\?\?)"); //想打印出(hehe??),于是在?前加上\,转变意思
}
转义:转变原来的意思
常见的转义字符:
\? 在书写连续多个问号时使用,防止他们被解析为三字母词
\' 用于表示字符常量'
printf("%c",'''); //这样打印不出' 因为会以为前两个''是一对 多出来'
printf("%c","\'"); //需要在'前加一个\ 使其变成一个普通的' 这样输出结果就是'
\" 用于表示一个字符串内部的双引号 与上面的一样
\\ 用于表示一个反斜杠,防止他被解释为一个转义序列符
printf("c:\\test\\100\\test.c"); //结果为c:\test\100\test.c
\a 警告字符,蜂鸣,打印它,电脑会响一下
printf("\a\a\a\a");
\b 退格符
\f 进纸符
\n 换行
\r 回车
\t 水平制表符 将当前位置移到下一个tab位置
\v 垂直制表符
\ddd ddd表示1-3个八进制数字。如:\130
printf("%c\n",'\130'); //结果为X
\130表示8进制的 130 转化为 10进制为88,而88的ASCII值对应的是X
\xdd dd表示2个十六进制数字。如:\30 结果为0
拓展ASCII值
计算机中acgscds@#$%这种字符是用ASCII码存储
printf("%d\n",strlen("c:\test\628\test.c")); //结果是14,\t,\62是一个字符
3)注释
// c99之后引入的注释方式,也是c++的注释风格,要一行一行输
/* */ c99之前引入的注释方式,也是c的注释风格,可以一次注释多行,缺陷是不支持嵌套注释
6.选择语句
if else语句,较为简单,如下,利用if else语句来判断一个数能否被5整除
#include <stdio.h>
#include <string.h>
int main()
{
int M=0;
scanf("%d\n", &M);
if (M % 5 == 0)
printf("YES"); //如果M能被5整除,则输出YES
else
printf("NO"); //如果M不能被5整除,则输出NO
}
7.循环语句
c语言中通过
while语句
for语句
do while语句来实现循环,作为初学者先介绍while语句
while (表达式) //若表达式为真,则进入括号内部
{
语句;
}
8.函数
数学中也有函数,如f(x)=2x+3
在c语言中,函数相当于一个工厂,将数据输入进去,调用函数即可得到结果,使得代码更加简洁
如下写一个加法函数
//定义函数
int Add(int x,int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
scanf ("%d %d",&num1,&num2);
sum = Add(num1,num2); //调用Add函数
printf("sum = %d\n",sum);
return 0;
}
Add 为函数名,int是函数的返回类型为整型,,x和y是函数的形式参数
9.数组
数组是一组相同类型元素的集合
int main()
{
int arr[10] = {1,2,3,4,5,6,7,8,9,10}; //arr就是10个元素的整型数组
printf("%d",arr[0]); //方括号括起来的是数组下标,0表示这个数组的第一个元素,即输出为1
int i = 0; //使用i产生下标
while(i<=9)
{
printf("%d",arr[i]); //利用while循环输出这个数组的所有元素
i = i+1;
}
return 0;
}
10.操作符
1)算数操作符
+ - * \ %
2)移位操作符
>> <<
3)位操作符
& ^ |
4)赋值操作符
= += -= *= /= &= ^= |= >>= <<=
11.常见关键字
12.define定义常量和宏
13.指针
要想理解指针,需要先知道内存的含义
内存是电脑上特别重要的存储器。计算机中所有程序的运行都是在内存中进行的,
所以为了有效地使用内存,就把内存划分成一个个小的内存单元,每个单元的内存大小就是一个字节,如int类型的数据占4个字节,为了有效地访问到内存的每个单元,就给内存单元编了号。
就像家庭住址一样,当你知道变量在哪个地址,就可以访问到它。而指针就是找到它的方法。
变量都有地址,取出变量地址如下
int main ()
{
int num = 10;
# //取出num的地址
printf("%p\n",&num); //打印地址,%p表示以地址的形式打印,就是找到num在内存中的位置
}
那地址如何存储呢?这就需要定义指针变量,来存放地址
int main()
{
int a = 10;
int *p = &a; //*告诉我们 p就是一个指针量 int说明,p是指向一个整型变量的
//&a的意思是a的地址,我们把地址也称为指针
}
14.结构体
当我们描述一个复杂的对象时,如想要了解一个学生,可以从他的性别、年龄、学号等来描述他,这就比较复杂,需要用到结构体。