当前位置:首页 » 编程语言 » 自己对c语言的看法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

自己对c语言的看法

发布时间: 2022-06-19 06:59:10

① 关于c语言

首先C要比你想象中的强大,你要拿掉你现在从简单程序C程序的看法,还有加减乘除这种想法。

其实你的困惑是每个刚入门的人都有的,产生的原因感觉无非就是觉得你编的程序和现实中应用的程序差距太大造成C语言无用的一种错误印象。

我想你所认为的程序,从你的“简单的WINDOWS程序啊”应该觉得是个图形界面的程序,觉得一个功能强大的程序应该是我们用的图形化界面,这是微软为了普及个人电脑而造成的。作为普通的电脑用户自然要图形界面,这是为了方便他们操作而做的,而作为一个程序员,你还是有必要熟悉字符操作,比如linux下用shell来操作,这里没有图形,没有按钮,有的只是指令。

C语言只能做数学算法,这种想法其实和你现在的水平有关。其实学了微机原理你就知道计算机从物理角度上来说,只能做加和乘(据说有乘法器,不过我没考证过)还有逻辑运算和,或,非,异或。任何一款复杂的应用软件归根结底都是这些操作的集合体,举个简单的例子,游戏算是一个复杂的软件了,游戏上任务的生命值,法力等等这些数值容易理解。图形其实也可以归结为数学,屏幕上以左下角为原点,每个像素就有了自己的坐标,他的颜色可以用三原色来合成表示,那么一个点就有了坐标这2个数字表示位置,颜色三原色可以用0,1,2这3个表示。这也图形就归结成了一个数学问题,这样CPU处理的还是数学问题。当然这是最原始的,后来人们用种种办法去改善计算机来处理图形,计算机图形也是门学问,你可以看一下。

C也提供了图形编程,包括2D和3D,我只记得一个graph.h头文件,其它的不记得了。

没有图形界面的软件难道就不是复杂软件了么,比如你的显卡驱动程序,它有图形操作界面么,但确确实实是一个非常重要的软件。

所以,好好学习C,这是一门不错的语言。图形化是为了方便人们观察的,而且我认识的觉大部分程序员都讨厌去做前台图形界面的工作,他们都认为,我处理好数据就好了,简单的,整齐的显示给他们看就可以了,为什么要整那些花里胡哨而没有任何实际意义的界面呢。

② c语言的优势

C语言具有其它语言所无法比拟的优势,因而被广泛应用,其具体优势如下所示:
1、简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富 C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用 C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6、生成目标代码质量高,程序执行效率高 C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7、可移植性好 C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8、表达力强 C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

③ 谈谈对c语言的认识

C语言是介于高级语言与低级语言中间的语言,基本上是比较好学的编程语言

④ 谈谈对c语言的认识和理解

C语言适合为硬件编写驱动程序,以及一些底层的程序。由于C语言不具有图形界面,对于大部分人来说没有太大的作用。但C++就不一样了,许多带有图形界面的程序都是用C++写的,学了C++可以做很多事,而学了C语言几乎什么都做不了,学了C语言再学C++并不会容易多少。
C语言和VB6.0在今天基本上已经被淘汰了。

⑤ c语言的优点

c语言的优点:
1.简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小...
2.运算符丰富 C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制...
3.数据类型丰富 C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型...
4.表达方式灵活实用 C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得...
5.允许直接访问物理地址,对硬件进行操作 由于C语言允许直接访问物理地址,可以直接对硬件进行访问。

⑥ 对于学习C语言,说说你的看法

二级,我都不知道怎么过的,可能那次题目不是很难....
如果你是计算机专业的话,二级应该不在话下,如果将来还想往编程方向发展的话,学好C,对将来的C++/C#....等面向对象很有帮助!
如果是非计算机专业的话,拿本书过了二级就可以了!

⑦ 结合变量、数组、指针变量、结构体变量谈谈对c语言学习的看法

本菜这几天一直在学习结构体变量当中,就一直想着尝试着用结构体变量这一工具来写一个简单的学生管理系统,经过了本菜的将近四天的奋战,终于完成了一个具备简单功能的学生管理系统,
首先,我要向各位码友们声明的是此贴并非教程贴,如题所示仅仅为本菜学习c语言过程中的心得分享帖,我不可能在这里为各位吧友进行大神般的语言描述,因为我只是一个c吧里长期潜水的菜鸟一头,以下我只会对我非常乐于分享的东西进行比较细节的描述,其余只会大概提起,甚至只会罗列以下代码。。。。。。。。。

起初刚刚接触到结构体变量的时候学到的是在
一开始就定义如下;

#define STU_NUM 60

int stu_numbers=0;
int Chinese;
int Math;
int English;

struct subject{
int chinese;
int math;
int english;
} ;
struct stu_info{
int sid; /*student id*/
char stu_name[NAME_LEN+1];
char sex[5];
struct subject S; /*这个是结构体变量的嵌套定义*/
}student[STU_NUM+1];
本学生管理系统所具备的的主要功能描述;
一. 这是一被定义为仅能容纳60个学生个人信息的管理系统;
二.所包含的学生信息包括
1. 学生的学号(sid)
2.学生的姓名(不超过十个字符的字符串)
3.学生的性别(不超过三个字符的字符串)
4.各科目的成绩(语数英)
5.学生数组号码
就这样 花了不少的功夫第一次写完了一个不怎么样的学生信息管理系统

-_-|||-_-|||-_-|||-_-|||
当我再将教材往后翻几页的时候, 教材里顺便提及了一下用链表来写这个管理系统,
链表是一种数据结构 ,其最大的的好处就是能够为数据分配动态内存,就不用像一开始那样先为系统分配一个都不知道够不够用的空间来存贮学生的信息,额 个人感觉吧 这是我第一次比较正规地接触到数据结构 确实是花了不少的时间来理解链表的构成和构造方法
不过这时间确实是花的很值得的,毕竟学会一种数据结构确实是会让程序运行起来比较高效率(对于刚接触的本菜来讲 确实有点抽象啊)。
那么先让本菜来谈谈我眼中的链表究竟是怎么样的吧;
链表,首先可以细分为一小块一小块的结构体变量,这一小块一小块的结构体变量在链表中
是首尾相连的顾名思义 就像一条铁链一样 而这每一小块的结构体变量中又可以从大方向地分成两个部分, 其中一个部分就是——————涵盖着该结构体变量里的所有信息,另一个部分就是链接每块结构体变量的部分————指针 其结构如下图

⑧ 简单谈一下自己对C语言的认识

面向过程的语言,结构化程序设计

⑨ 结合if putchar getchar等谈谈对c语言学习的看法

C语言中的getchar, scanf, putchar, printf学习
[摘要:输进战输出功效并非C说话自身的构成局部,他们属于规范库局限,应用输进输出相干函数是必需写:#includestdio.h 。文件名用尖括号括起去时,预处置惩罚器将到特定地位查找而没有是正在工]

输入和输出功能并不是C语言本身的组成部分,他们属于标准库范围,使用输入输出相关函数是必须写:#include<stdio.h> 。文件名用尖括号括起来时,预处理器将到特定位置查找而不是在工程中。

常用的标准的输入输出有:
getchar(void), scanf(char *format, …); putchar(c), printf(char*format, arg1, arg2 ,…)

C语言中,用Dos窗口输入数据时,长度满足输入函数要求并且按下了回车键才能结束本次输入。如果长度满足(包括超出)没有按下回车键,继续等待输入直到按下回车键,如果按下回车键但长度没有达到要求,继续等待输入,直到长度满足要求并且按下回车键。
输入结束后,输入函数接收完所需要的数据或者无法与输入数据匹配时结束(终止)执行。
超出的输入数据(包括回车符)停留在缓存中,等到下一次有输入函数时,传递给输入函数。
在char型的输入中空格、回车、换行等都当成字符处理。
而整形相关输入中,数据边界定义为下一个非数字字符或者指定的字符宽度,在非数字字符中,只有空白符(包括空格、制表符、回车、换页符)可以被自动被忽略。

输入:

int getchar(void)
从标准输入中(一般为键盘)一次读取一个字符,空格回车等都当成一个字符,是最简单的输入机制。
返回:调用时输入字符的ASCII值,遇到文件结尾,返回EOF(符号常量,一般为-1)。
使用“prog <输入文件名”实现输入重定向(改变输入源,例如把键盘输入改成文件输入)
文本流有一系列行组成,每一行的结尾是换行符,如果系统不遵行这种模式,标准库将其转变为该种模式,例如输入端把回车符和换页符都转换为换行符,输出端反向变换。

int scanf(char *format, …)
按照format的格式读入字符,存储在后面参数所代表的地方,因此后面的参数一定是地址(指针)。
返回:成功匹配并赋值的输入项个数,遇到文件结尾,返回EOF,下一个字符与格式说明不匹配,返回0(EOF与0不是同一个概念)
扫描完字符串或者碰到某些输入无法与控制字符匹配时,函数终止

intsscanf(char *string, char *format, arg1, arg2, …)
按照format格式扫描string中的字符,保存在arg1,arg2中,arg1,arg2也必须是地址(指针)。其他与scanf相同
文本流有一系列行组成,每一行的结尾是换行符,如果系统不遵行这种模式,标准库将其转变为该种模式,例如输入端把回车符和换页符都转换为换行符,输出端反向变换。

Format由三部分组成,”<空格制表符(通常省)> <普通字符(可省)> <转换说明(不可省)>”
空格和制表符在处理过程中被忽略。
普通字符(不包括%),用来严格的和输入流中的数据不对,若不相同,则后面的不能输入。
转换说明包括:
% <禁止符*(可省)> <数值(最大宽度,可省)> <h, l或L(对象宽度,可省)> <转换字符>
转换说明中有赋值禁止字符*,跳过该输入字段,不进行赋值。
执行scanf获得的数据个数由转换字符的个数决定。
转换字符含义参考其他说明。

输出:

int putchar(c)
函数putchar(c)将字符c送到标准输出上,默认情况下是显示屏。
返回:输出的字符,发生错误则返回EOF
使用“>输出文件名”实现输出重定向(改变输出地,例如把输出到屏幕改为某个文件)
文本流有一系列行组成,每一行的结尾是换行符,如果系统不遵行这种模式,标准库将其转变为该种模式,例如输入端把回车符和换页符都转换为换行符,输出端反向变换。

int printf(char *format, arg1, arg2 ,…)
在format的控制下打印。
返回:打印的字符数。

int sprintf( char *string, char*format, arg1, arg2, …)
功能与printf相同,但是输出到string中而不是标准的输出中,要保证string足够大。
文本流有一系列行组成,每一行的结尾是换行符,如果系统不遵行这种模式,标准库将其转变为该种模式,例如输入端把回车符和换页符都转换为换行符,输出端反向变换。

Format由两部分组成,”普通字符、转换说明”
普通字符直接输出到数据流里
转换说明不直接打印,控制printf中参数的转换和打印,格式为“%<格式控制>字符”
其中格式控制符为 -x.x样式,控制对其方式、宽度、精度(输出长度)等,字符控制输出的格式。

例:输入n(n不超过100)个整数,各个整数用逗号隔开。
方法一:
思路:利用getchar()函数逐个字节(字符)输入,找出逗号的位置。然后将逗号之间的字符转换成整形数放到数组里。
char str[100] = {0};
int num[50] = {0};
char comma[50] = {0};
char i = 0,j = 0,k = 0;

str[i] = getchar(); //下面的输入是从str[1]开始,这里
while(10 != str[i++]){ //以回车符结束输入
str[i] = getchar();
if(str[i] == 44){ //记录逗号的位置
comma[j++] = i;
}
}
comma[j] = i - 1; //i是回车符的位置(判断的时候执行了++),相当于最后一个逗号,j从开始,j+1为字符串中整数的个数
num_real = j;
for(i=(comma[0]-1);i>=0;i--)
num[0] = num[0] + (str[i]-48)*pow_self(++k); //解决第一个数,j=0无法确定下限
k = 0;
for(;j>=1;j--){
for(i=(comma[j]-1);i>comma[j-1];i--)
num[j] = num[j] + (str[i]-48)*pow_self(++k); //num从开始,共j+1个数
k = 0;
}

其中pow_self函数定义为:
int pow_self(char num)
{
int cnt;
int sum = 1;
for(cnt =1;cnt<num;cnt++)
sum = sum*10;
return sum;
}

方法二:
Scanf和getchar配合,getchar负责接收逗号,逗号拥有空白符的功能。
int a[5] = {0};
int i = 0;

scanf("%d",&a[0]);
while(10 != getchar()) scanf("%d",&a[++i]);

⑩ 如何认识C语言

顶楼上的,LZ的问题太……