C语言是面向过程的,而C++是面向对象的
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
其实C语言的话,做出来的东西,各种系统挺多的,需要的是不断地去挖掘,有人说,C语言学了不就是一些简单的语法,函数,数据结构什么的嘛,就一些知识点会了不就行了。
在我看来这个只是大学里面需要掌握的一些,其实C语言很强大的,可以做的东西,项目挺多的,各种小游戏,管理系统什么的,所以说不要说会了那些C语言的知识点就说,C很简单很会了,其实当我们去动手做项目的时候就是一脸懵逼的,大学时候我想问问,有多少人动手去做过什么项目,或许尝试做个推箱子或者贪吃蛇有可能,但是这肯定只局限于百分之十五的大学生吧。
简单的迷宫小游戏__C语言程序源代码详解:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#define Height 31 //迷宫的高度,必须为奇数
#define Width 25 //迷宫的宽度,必须为奇数
#define Wall 1
#define Road 0
#define Start 2
#define End 3
#define Esc 5
#define Up 1
#define Down 2
#define Left 3
#define Right 4
小编推荐一个学C语言/C++的学习裙【728483370 】,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!
int map[Height+2][Width+2];
void gotoxy(int x,int y) //移动坐标
{
/* typedef struct _COORD {
SHORT X;
SHORT Y;
} COORD, *PCOORD; */
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );
}
void hidden()//隐藏光标
{
/* typedef void *HANDLE; */
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
/* typedef struct _CONSOLE_CURSOR_INFO {
DWORD dwSize;
BOOL bVisible;
} CONSOLE_CURSOR_INFO *PCONSOLE_CURSOR_INFO; */
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible = 0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut,&cci);
}
void create(int x,int y) //随机生成迷宫
{
int c[4][2] = {0,1,1,0,0,-1,-1,0}; //四个方向
int i,j,t;
//将方向打乱
for(i=0;i<4;i++)
{
j = rand()%4;
t = c[i][0];
c[i][0] = c[j][0];
c[j][0] = t;
t = c[i][1];
c[i][1] = c[j][1];
c[j][1] = t;
}
map[x][y] = Road;
for(i = 0;i < 4;i++)
if(map[x + 2 * c[i][0]][y + 2 * c[i][1]] == Wall)
{
map[x + c[i][0]][y + c[i][1]] = Road;
create(x+ 2 * c[i][0],y + 2 * c[i][1]);
}
}
int get_key() //接收按键
{
char c;
while(c = getch())
{
if(c == 27)
return Esc; //Esc
if(c != -32)
continue;
c = getch();
if(c == 72)
return Up; //上
if(c == 80)
return Down; //下
if(c ==75 )
return Left; //左
if(c == 77)
return Right; //右
}
return 0;
}
void paint(int x,int y) //画迷宫
{
gotoxy(2 * y - 2,x - 1);
switch(map[x][y])
{
case Start:
printf("入");break; //画入口
case End:
printf("出");break; //画出口
case Wall:
printf("※");break; //画墙
case Road:
printf(" ");break; //画路
}
}
void game()
{
int x=2,y=1; //玩家当前位置,刚开始在入口处
int c; //用来接收按键
while(1)
{
gotoxy(2 * y - 2,x - 1);
printf("☆"); //画出玩家当前位置
if(map[x][y] == End) //判断是否到达出口
{
gotoxy(30,24);
printf("到达终点,按任意键结束");
getch();
break;
}
c = get_key();
if(c == Esc)
{
gotoxy(0,24);
break;
}
switch(c)
{
case Up: //向上走
if(map[x-1][y] != Wall)
{
paint(x,y);
x--;
}
break;
case Down: //向下走
if(map[x+1][y] != Wall)
{
paint(x,y);
x++;
}
break;
case Left: //向左走
if(map[x][y-1] != Wall)
{
paint(x,y);
y--;
}
break;
case Right: //向右走
if(map[x][y+1] != Wall)
{
paint(x,y);
y++;
}
break;
}
}
}
int main()
{
int i,j;
srand((unsigned)time(NULL)); //初始化随即种子
hidden(); //隐藏光标
for(i = 0;i <= Height + 1;i++)
for(j = 0;j <= Width + 1;j++)
if(i == 0 || i == Height + 1 || j == 0 || j == Width + 1) //初始化迷宫
map[i][j] = Road;
else
map[i][j] = Wall;
create(2 * (rand() % (Height / 2)+1),2 * (rand() % (Width / 2) + 1)); //从随机一个点开始生成迷宫,该点行列都为偶数
for(i = 0;i <= Height+1;i++) //边界处理
{
map[i][0]=Wall;
map[i][Width+1]=Wall;
}
for(j=0;j<=Width+1;j++) //边界处理
{
map[0][j]=Wall;
map[Height+1][j]=Wall;
}
map[2][1]=Start; //给定入口
map[Height-1][Width]=End; //给定出口
for(i=1;i<=Height;i++)
for(j=1;j<=Width;j++) //画出迷宫
paint(i,j);
game(); //开始游戏
getch();
return 0;
}
涉及到的C语言的知识点也不是很多,这个知识点里面有我自己的说法,全属个人的见解.
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等.
网友评论