提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
前言
初步认识c语言中的程序框架、数据类型、变量、字符串、循环语句和条件语句、函数、数组、指针、结构体。
提示:以下是本篇文章正文内容,下面案例可供参考
一、C语言是什么?
C语言是一门通用的、面向过程的计算机编程语言,能够与计算机进行交互,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式 编译 、处理低级 存储器 、仅产生少量的 机器码 以及不需要任何运行环境支持便能运行的编程语言。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制 定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。
二、第一个简单C语言程序。
#include <stdio.h>
int main()//main为程序的入口 ,一个程序有且只能有一个
{
printf("hello bit\n");//printf为一个库函数使用需包含头文件stdio.h
return 0;
}
三、数据类型
char 字符类型
shout 短整型
int 整型
long 长整型
long long 更长的整型
float 单精度浮点数
double 双精度浮点数
类型的使用
char ch1; //类型 变量
char ch='a';//类型 变量=初始值
int x=10;
四、变量和常量
变量:可以变化的值,例如人的年龄、体重。
常量:不可以变化的值,例如人的性别、身份证号。
4.1 变量定义方法
char ch1; //类型 变量
char ch='a';//类型 变量=初始值
int x=10;
4.2 变量命名
只能由字母、数字、下划线(_)组成。
注意:不能以数字开头,变量区分大小写,变量名不能使用关键字。
4.3 变量的分类
- 局部变量
- 全局变量
#include<stdio.h>
int a=100;//全局变量
int main
{
int b=1;//局部变量
return 0;
}
注意:当局部变量和全局变量同名时先使用局部变量。
4.4 变量的使用
#include<stdio.h>
int a=100;//全局变量
int main()
{
int b;
//输入2个整数的值 ,&取地址操作符 ,&num1 取出num1的地址
scanf("%d", &b);
//打印
printf("%d\n", b);
return 0;
}
4.5 变量的作用域和生命周期
作用域:通俗来说就是限制代码的作用范围或代码的可用范围。
- 局部变量作用域:变量所在局部范围
- 全局变量作用域:整个程序
生命周期:变量的创建到销毁之间的时间段。
- 局部变量生命周期:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量生命周期:整个程序的生命周期。
4.6 常量
- 字面长量
- const修饰的常变量
- #define定义的标识符常量
- 枚举常量
#include<stdio.h>
enum sex
{
male
female
}//枚举常量male、female,默认从0开始,向下依次增加1
int main()
{
printf("%d",male);
printf("%d",female);
2//字面常量
const int a=1;//const修饰常变量 a,不能直接修改,本质还是变量
#define max 10//max标识符常量,给常数赋一个名字
printf("%d",max);
}
五、字符串和转义字符
5.1 字符串
字符串:由双引号引起内容的值。
注意:字符串以\0转义字符为结束标志,在计算字符串长度时不算字符串内容。
#include<stdio.h>
int main()
{
char ch1[]={'a','b'};
char ch2[]={'a','b','\0'};
char ch3[]="ab";
printf("%s\n",ch1);
printf("%s\n",ch2);
printf("%s\n",ch3);
return 0;
}
5.2 转义字符
转义字符 含义
- \? 在书写连续多个问号时使用,防止他们被解析成三字母词
- \' 表示字符常量 ’
- \" 表示一个字符串内部的双引号
- \\ 表示一个反斜杠,防止它被解释为一个转义序列符
- \a 警告字符
- \b 退格符
- \f 进纸符
- \n 换行
- \r 回车
- \t 水平制表符
- \v 垂直制表符
- \ddd d d d表示1~3个八进制的数字
- \xdd d d表示2个十六进制的数字
六、 循环语句和选择语句
6.1 选择语句
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
if(a==0)//选择
{
printf("0000\n");
}
esle if(a<0)//选择
{
printf("----\n");
}
else//选择
{
printf("++++\n");
}
return 0;
}
6.2 循环语句
循环:反复做的事,例如:人们日复一日的学习。
- while语句
- for 语句
- do...while语句
while语句的一般形式为:while(表达式1)循环体
//while循环
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
while(a>0)//判断条件
{
printf("太大了");
a--;
}//循环体
return 0;
}
for循环
for语句的一般形式为:for(表达式1;表达式2;表达式3)循环体
执行循序:表达式1——表达式2——循环体——表达式三——循环体
常用的for语句的形式:for(循环变量赋初值;循环条件;循环变量增值)循环体
//for循环
#include<stdio.h>
int main()
{
int a,i;
scanf("%d",&a);
for(i=0;i<5;i++)
{
printf("%d\n",a);
a--;
}
return 0;
}
do...while循环
do while语句的一般形式为:do 循环体 while(表达式)
//do...while循环
#include<stdio.h>
int main()
{
int a,i;
scanf("%d",&a);
do
{
printf("%d",a);
a--
}
while(a>0)
return 0;
}
break; 结束循环,continue跳出本次循环
注意:for循环多用在循环次数已确定的情况,而while循环多用在循环次数不确定的情况。
七、函数
定义函数 :返回值类型 函数名(变量类型 变量名,变量类型 变量名,....)
调用函数:函数名(变量名,变量名,....)
#include <stdio.h>
int Sum(int x, int y)
{
return x+y;
}
int main()
{
int x;
int y;
int sum;
scanf("%d %d", &x, &y);
sum = Sum(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
八、数组
数组:一组相同数据类型元素的集合
8.1 数组的定义
int a[5]={1,2,3,4,5};//定义一个 整形数组,最多有5个元素
8.2 数组的下标
数组中每个元素都有下标,下标从零开始,若数组的长度为n,则下标从0到n-1。
8.3 数组的使用
#include <stdio.h>
int main()
{
int i = 0;
int arr[5] = {1,2,3,4,5};
for(i=0; i<5; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
九、 操作符
9.1 算术运算符
+、-、*、/、%
9.2 赋值操作符
9.3 关系操作符
9.4 逻辑操作符
9.5 条件操作符
十、关键字
10.1 常见关键字
10.2关键字typedef
typedef :类型重命名
//将struct pro 重命名为Pro, 所以Pro也是一个类型名
typedef struct pro Pro;
10.3关键字static
static是用来修饰变量和函数
- 修饰局部变量
- 修饰全局变量
- 修饰函数
void test()
{
//static修饰局部变量
static int i = 0;
i++;
printf("%d ", i);
}
static int a = 2018;//static修饰全局变量
int main()
{
printf("%d\n", a);
return 0;
}
注意:static修饰全局变量,使得这个全局变量只能在自身所在文件内使用。
static int Sum(int x, int y)
注意:static修饰一个函数,使此函数只能在自身所在文件内使用。
十一、指针
11.1 内存
在电脑中,内存是一种重要的存储器,为有效利用内存,便将内存划为一个个内存单元,每个内存单元的大小是一个字节,而为了能够有效访问每个单元,于是给内存单元进行编号,这些编号就是内存单元的地址,
在这里我们所说的内存单元的地址和编号指的就是指针。
取地址
#include <stdio.h>
int main()
{
int a = 10;
&a;//取a的地址,a有4个字节,每个字节都有地址,取的是第一个字节的地址
printf("%p\n", &a);//%p是以地址的形式打印
return 0;
}
11.2 定义指针
int a = 10;
int *p;//p为一个整形指针变量
p = &a;//存储地址
十二、结构体
12.1 结构体的定义
描述一个包含学号、名字、性别、年龄、班级等信息的学生
struct Stu
{
char id[15]; //学号
char name[20];//名字
char sex[5]; //性别
int age; //年龄
char class[10];//班级
};
12.2 结构体的操作
//结构体初始化
struct Stu student = {"20180101","张三","男",20,"软工四班"};
//.结构成员访问操作符
printf("id = %s name = %s sex = %s age = %d class=%s\n", student.id,student.name,student.sex,student.age,student.class);
//->操作符
struct Stu *ps = &student;
printf("id = %s name = %s sex = %s age = %d class=%s \n",ps->id, ps->name, ps->sex, ps->age, ps->class);