当前位置:首页 » 编程语言 » c语言最难

c语言最难

发布时间: 2022-09-21 02:06:45

c语言是最难的语言么

并不是,C语言相对其他语言还是比较简单的。

② c语言最难在什么地方

c语言最难在它缺乏逻辑性--形式逻辑不成立。

例如:
char str[]="abcdef"; //声明 str 是字符串,初始化成 "abcdef"。
可是,一样是赋值,写在语句里:
str[]="abcdef";
或 str="abcef";
却都是错的。而要调用函数:
strcpy(str,"abcdef"); 才行。

例如:
int a=4;
int *b=&a; // 声明 b 是指针,让它指向a。
printf("%d", *b); // 打印 b 的值。
如果语句里写:
*b=&a;// 却 是错的,你瞧,外形同声明里一样,却 是错的。
语句里要写:
b=&a; // 你瞧,b 前面没*号 才正确。
你要是写:
b=a; // 对不起,又错了。

例如,声明了:
int a;
int *b
语句里 可以 有 a, 可以 有 &a, 可以 有 b, 却不可以 有 &b 形式。
语句里 可以 有 b, 可以 有 *b, 可以 有 a, 却不可以 有 *a 形式。

所谓C语言指针难,难在 形式逻辑不成立。
而我们经验中的 数学,却是 逻辑性很强,形式逻辑成立。
初学者,最难理解就是 “形式逻辑不成立”这点。

③ C语言有地方最难学啊

这要看学习者是抱着什么样的态度去学的,对于一个爱好者来说学什么都好办,对于一个不爱好的人来说即使用最简单的给他学,他也会觉得很难的。
就我个人的学习,我觉得指针那儿比较难,因为那块儿的东西可以跟数组还有其他的如:文件操作那儿进行联系。还有就是嵌套的循环语句,if 语句了等等几个甚至十几几十个嵌套之后给解读程序带来不便。
我相信只要经过一段时间专研一定能顺利通过那些难点的学习。

④ C语言最难学的是什么

嗯,很佩服lz的自学能力。
谭浩强的c语言的书,很权威,很详细,很适合自学的。
学习c语言很重要的一点就是学习理论知识与上机训练结合起来。学完一章后就按课本后面的习题上机练练。这样稳扎稳打的学起来很好了。又win—tc软件配合上机训练不错。
指针是学习者公认的最难学的。还有指向指针的指针。后面还有结构体和链表,里面都有用到指针的知识。如果指针学得后,那在以后的设计里会相当实用方便。

⑤ C语言中最难的是什么求解

数据结构和算法


队列
二叉树


前提是先学好单链表
学会这些
你的C
算学到家了

指针是基础中的基础
不是难点

⑥ c++语言最难学的是什么

作为一个用了3年多C/C++的程序狗,我来说两句。


说到C++的难点,其实很多地方是一言难尽的。我不敢声称我精通C++,我甚至觉着八成的人都不能这么说。甚至我可以确定,在我工作的过程中我肯定是没有用过C++所有的语言特性,甚至有些语言特性到现在看来我都觉着是天书。


C++的坑太多了,简单说几点:

  1. 指针并不能简单算做是C++的痛点,这个特性继承自C,它带来的问题很多:当你的程序莫名崩溃,你就要好好考虑下,是不是出了野指针,或者你的程序有MemoryLeak?这个对新手来说简直是地狱,如果再混下多线程,OMG,谁能告诉我这个对象的生命周期到底应该如何管理。也许你需要make_shared,但是你要知道,半自动的内存管理要用好也是要花功夫的,而且仍然不能杜绝问题的产生。

  2. 跨平台。也许有人跟你说过 C++跨平台,一份代码在不同的平台上都能找到编译器来编译。这句话本身没错,问题在于,有没有人告诉过你,不同的编译器对C++标准支持是不一样的?C++的跨平台在我看来就是宏预处理堆砌出来的跨平台。这个对java或者C#的程序员来说,会崩溃的。你见没见过有语言上来就重新定义自己的int,long类型的?你去看大型的C++项目,尤其是有年头或者有历史沿袭的,基本都这么干过。为什么?因为早些年大家没啥好办法,为了让自己的程序在不同平台上的表现尽量一致,只能自己把基本类型重定义一遍。

  3. stl,说到这个一脸泪。stl好用吗?很好用。stl好学吗?一点也不好学。它的学习成本太高了,而且代码晦涩。C++的模板库基本都是一个德行。如果你发现你看不懂你常用的std::vector<>里的代码,很正常,这种模板的语法习惯起来需要时间。很多人诟病stl太大,内存释放效率低,不同平台实现不一致等等问题。关于这个不一致的问题,我们来说一下:windows平台vc自己实现了stl。linux上gnu实现了gnu stl。android平台早些年用stlport,据说是个经典的实现版本,后来换用了gnu的实现。mac上苹果的clang用的是不是自己实现的还是直接用了gcc的不太清楚,没有用过水果的产品做开发。那么stl在C++上处于一种什么地位?它就是C++的标准模板库啊?用过java和C#的都知道,标准库是个什么地位。离了它们不出活啊。也许我们可以重新写一个?ok,在java,C#上你是看不到的,但苦逼的C++众不少人这么干过,或者早些年在stl功能简陋的时候曾经这么干过。EA就专门针对游戏开发写过一个EASTL,还是开源的。对于一个语言来说,标准库如此的不统一,实在是令人头大。

  4. C++11 这个可以拿来所说的,总体来说不算缺点。C++11对于C++来说试一次很彻底的进化。解决了很多问题,引入了lambda,新的右值引用,新的智能指针等等。当时为什么要列在这里呢?学习成本啊 亲。我们就说引用,以前我们有普通的值引用,常量引用,现在我们多了一个右值引用。没错,现在右值也可以有引用了。什么,你不清楚引用,常量,左值和右值的概念?正常,在没有右值引用之前,我就没在意过左值和右值的区别。现在不一样了啊,扔给你个std::move std::forword 为了会用,你还要滚回去把左值和右值白扯清楚。

  5. 看到有人说类,补充一个。我觉着C++的类模型设计上是有问题的。而且多继承现在的普遍观点是这是个缺点大过优点的特性。单继承+受限类的多继承目前比较有市场。可以看看Java8,它就是这么干的。还有就是支持重载必须显式声明为virtual,而且子类中是看不出基类中是否有virtual声明的。这个是个有点扯淡的要求。因为在一个庞大的继承树中,你可能需要跟踪到继承树的根节点才能知道到底是不是virtual的。个人理解可以由编译器自行推断,但是现有的标准并没有这么做,不知道是为了兼容还是觉着这么做会带来问题。我们来看一下常用的关于类的C++语言特性:多继承,虚函数,构造函数,析构函数,拷贝构造函数,运算符重载,公有继承私有继承保护继承,友元函数友元类,静态成员。这是我能想到的,C++类的复杂度绝对是超过java和C#的。就一个多继承时多级父类的构造和析构过程就够新手挠头一阵的。


大概上是这样,这个是我说理解的C++存在的问题。如果你去知乎上搜,可以找到更多。比如ABI接口兼容问题,跨dll的内存释放问题,自动构造析构导致你根本无法精确控制内存,不去做专门了解,你都不知道编译器产生过几个临时对象,它们又在何时产生了析构。


对C的兼容,对多种编程范式的支持,新语法的不断加入,不同编译器标准的支持力度,平台相关性带来的跨平台问题等等困扰着C++。它仍然是一门好语言,但并不完美,它不对你的使用做出任何的假定和限制,所以如果你滥用这些过于灵活和强大的特性,程序肯定会崩给你看的。


以上。

⑦ c语言是最难的语言么

V语言不是最难的编程语言。编程语言分为机器语言,汇编语言,高级语言,编程一般需要接触到汇编和高级语言,汇编语言是最难的部分。高级语言同样按照不同的应用方向,有c c++,java,python等等,他们之间的难度划分因应用而异。所以不能简单的说C语言是最难的语言。

⑧ c语言中最难得是什么

指针,特别是指向指针的指针和指向函数的指针

⑨ c语言最难在什么地方

c语言最难在它缺乏逻辑性--形式逻辑不成立。
例如:
char
str[]="abcdef";
//声明
str
是字符串,初始化成
"abcdef"。
可是,一样是赋值,写在语句里:
str[]="abcdef";

str="abcef";
却都是错的。而要调用函数:
strcpy(str,"abcdef");
才行。
例如:
int
a=4;
int
*b=&a;
//
声明
b
是指针,让它指向a。
printf("%d",
*b);
//
打印
b
的值。
如果语句里写:
*b=&a;//

是错的,你瞧,外形同声明里一样,却
是错的。
语句里要写:
b=&a;
//
你瞧,b
前面没*号
才正确。
你要是写:
b=a;
//
对不起,又错了。
例如,声明了:
int
a;
int
*b
语句里
可以

a,
可以

&a,
可以

b,
却不可以

&b
形式。
语句里
可以

b,
可以

*b,
可以

a,
却不可以

*a
形式。
所谓C语言指针难,难在
形式逻辑不成立。
而我们经验中的
数学,却是
逻辑性很强,形式逻辑成立。
初学者,最难理解就是
“形式逻辑不成立”这点。

⑩ 学C语言最难的 是什么

c语言中最灵活的是指针,最难学的也是指针。
不过,只有多多练习,也不难学。
上机实践特别重要,编程语言指在书面上写程序是永远也学不好的!!
通过实践,就可以深刻的理解书本中的道理!!

热点内容
服务器负载均衡怎么用 发布:2025-01-11 07:54:04 浏览:128
云打印服务器硬件 发布:2025-01-11 07:44:56 浏览:769
怎么在手机上更改wifi密码 发布:2025-01-11 07:37:26 浏览:337
开机启动serviceandroid 发布:2025-01-11 07:35:24 浏览:523
天龙八部脚本设置自动喊话 发布:2025-01-11 07:31:37 浏览:310
硒标准溶液配置为什么要加盐酸 发布:2025-01-11 07:27:51 浏览:253
怎么做电脑编程 发布:2025-01-11 07:14:36 浏览:481
压缩圆环 发布:2025-01-11 06:41:37 浏览:512
安卓背面是什么字母 发布:2025-01-11 06:37:55 浏览:215
个人小程序怎么购买云服务器 发布:2025-01-11 06:33:08 浏览:912