wind2100 发表于 2014-11-29 09:32:19

大家说来说C语言的缺点

我就感觉这个特不方便。
1.我发现,要定义一个数组或是字符串,最好要定义数组的大小,不然,如果后面要用指针来操作这个数组,没办法知道数组大小,整个程序就OVER。

彼岸花开@ 发表于 2014-11-29 09:37:03

1、siziof 不知道能不能满足需要
2、能力有限不能给出更多的答案。

wind2100 发表于 2014-11-29 09:56:41

彼岸花开@ 发表于 2014-11-29 09:37
1、siziof 不知道能不能满足需要
2、能力有限不能给出更多的答案。

sizeof 只能统计数组 大小

我觉得一但指针被初始化后,指针指向的东西就是有大小的了

qs6361036 发表于 2014-11-29 10:03:23

楼主发错版块了吧,这里是飞思卡尔专区

fengyunyu 发表于 2014-11-29 10:06:04

LZ这个问题和C语言是否有缺陷无关。

deeplly 发表于 2014-11-29 10:12:01

个人觉得c语言时序要求不高的地方还是挺方便的

Ai_evan 发表于 2014-11-29 10:12:08

这个是指针的强大之处,要好好的用!!

彼岸花开@ 发表于 2014-11-29 10:15:16

wind2100 发表于 2014-11-29 09:56
sizeof 只能统计数组 大小

我觉得一但指针被初始化后,指针指向的东西就是有大小的了 ...

1、如果在初始化的时候,没有定义数组的大小。在后边使用的时候数组的中被赋值。。。那么使用sizeof 统计数组的大小。是这个数组中已经有被填充的大小吧。。因为数组是未定义大小的,所以数组的大小还是有可以一直增加的。 我的理解对不对呢
2、用指针操作数组,如果发生越界。确实很严重。。
3、用指针的时候能不能判断一下 ,数组的最后总是'\0' 结束嘛。。这个我没有尝试过。

fengyunyu 发表于 2014-11-29 10:18:44

彼岸花开@ 发表于 2014-11-29 10:15
1、如果在初始化的时候,没有定义数组的大小。在后边使用的时候数组的中被赋值。。。那么使用sizeof 统计 ...

数组大小是定义是确定的,貌似不能一直增加。至于用指针去访问数组的越界问题,那是软件设计的问题,和数组、c语言无关。

ijlc1314 发表于 2014-11-29 10:21:01


指针正是C语言的强大之处,楼主说的这个不是C语言的不足之处,而在于使用指针的人

wicy001 发表于 2014-11-29 10:24:55

wind2100 发表于 2014-11-29 09:56
sizeof 只能统计数组 大小

我觉得一但指针被初始化后,指针指向的东西就是有大小的了 ...

在定义指针的时,指针指向的东西就有大小。
比如 char* p, sizeof(*p)也只能是一个char

如果你想sizeof(*p)返回一个数组的大小,那么可以自定义之中类型
typedef struct
{
char str;
}
Str_TypeDef;

这是定义Str_TypeDef * p,此时sizeof(*p),就是数组str[]的大小了。


security 发表于 2014-11-29 10:26:07

wind2100 发表于 2014-11-29 09:56
sizeof 只能统计数组 大小

我觉得一但指针被初始化后,指针指向的东西就是有大小的了 ...

给你提供个伪代码:ArrayCount = sizeof(Array) / sizeof(Array);

wicy001 发表于 2014-11-29 10:30:25

彼岸花开@ 发表于 2014-11-29 10:15
1、如果在初始化的时候,没有定义数组的大小。在后边使用的时候数组的中被赋值。。。那么使用sizeof 统计 ...

数组和字符串混了。

数组里面的数据可以任意,并不是\0结尾
字符串才是\0结尾。

如果想用数组放字符串“www”,数组至少要定义成4个字节,第四个字节用来放'\0'

1米49 发表于 2014-11-29 10:31:56

指针,运用的好就是神器,非常好用,实用。但是运用不好 对整个系统来说 就是灾难。
任何东西都有利有弊,看怎么运用了。

彼岸花开@ 发表于 2014-11-29 10:34:33

wicy001 发表于 2014-11-29 10:30
数组和字符串混了。

数组里面的数据可以任意,并不是\0结尾


1、 谢谢指点。确实弄错了、

wicy001 发表于 2014-11-29 10:43:00

本帖最后由 wicy001 于 2014-11-29 10:44 编辑

彼岸花开@ 发表于 2014-11-29 10:34
1、 谢谢指点。确实弄错了、

刚才只注意第三条了。
你说的第一点,也不准确,
我们常说的定义数组,都是指静态数组, 数组定义了,其大小就不能变了。

有一个概念是动态数组,就是堆,是calloc或malloc来申请。

彼岸花开@ 发表于 2014-11-29 11:05:46

wicy001 发表于 2014-11-29 10:43
刚才只注意第三条了。
你说的第一点,也不准确,
我们常说的定义数组,都是指静态数组, 数组定义了,其 ...

1、 对于静态数组。 他的长度在定义数组后,就确实了。
          使用静态数组。方法一:是定义数组时同时定义数组的长度,同时给这个数组赋初值。这种不太常用。方法二:定义数组的时候不定义数组的长度,但是给数组初值。
                                方法三:定义数组的同时。定义数组的长度,但不给数组赋初值。这三种方法都能编译通过。方法四:定义数组的同时。不定义数组的长度也不给数组赋初值。。keil5 编译失败。
                                方法四编译不通过。也说明了静态数组在定义后,数组长度就就确定了
2 、明白了动态数组是申请内存来了。我的第一点,将静态数组和动态数组搞混了

zhangchaoying 发表于 2014-11-29 11:17:28

1米49 发表于 2014-11-29 10:31
指针,运用的好就是神器,非常好用,实用。但是运用不好 对整个系统来说 就是灾难。
任何东西都有利有弊, ...

   指针,C语言的利器。学好不容易。

wicy001 发表于 2014-11-29 11:19:08

彼岸花开@ 发表于 2014-11-29 11:05
1、 对于静态数组。 他的长度在定义数组后,就确实了。
          使用静态数组。方法一:是定义数组时同时定义 ...

勤奋好学,赞一个。{:biggrin:}

1米49 发表于 2014-11-29 11:20:09

zhangchaoying 发表于 2014-11-29 11:17
指针,C语言的利器。学好不容易。

我也是会使用一点,都是参考别人,然后拿来用,其实像回调函数什么乱七八糟的,看的时候理解了,过段时间不用又忘记了,哎。
指向函数的指针,一直都没怎么用好

chengz 发表于 2014-11-29 11:53:24

没有数组越界检测,没有内存自动回收。。。。

swap2013 发表于 2014-11-29 13:12:05

有时都不敢用指针

wind2100 发表于 2014-11-29 13:19:08

wicy001 发表于 2014-11-29 10:24
在定义指针的时,指针指向的东西就有大小。
比如 char* p, sizeof(*p)也只能是一个char



typedef struct tStr
{
   char strA;
   char strB;
}
Str_Type;


Str_Type Str={
"123","56789"
};

Str_Type *pStr=&Str;


int main(int argc, char *argv[])
{
        u16 i = 1;

   
   while(i--)
   {         
          printf("pStr===>%d \n",sizeof(pStr->strA));          
   }
   
        return 0;
}

打印结束 是 6只是数组大小,并不是字符字节数。
按你的做法, 也不能统计到字节数,和定义数组大小一样。 先指定的大小。

wind2100 发表于 2014-11-29 13:22:00

其实我是想,能不能不定义数据的字节数,

实现,
char strA[]={"A2345"};
char strB[]={"B23456789A"};
char strC[]={"B23456789A123"};

超过8个字符,我要做一个左移,不超过的,不用左移

wind2100 发表于 2014-11-29 13:25:17

害得我,这样做了。
//=========================================================================================
typedef struct tStr
{

        u8 Size;
        const u8 * pStr;

}Str_Type;

const u8 StrGoodBye[]      ={"Good Bye"};



const Str_Type Str[]={
   
    {sizeof(StrGoodBye),StrGoodBye},

};

wind2100 发表于 2014-11-29 13:28:46

debian 发表于 2014-11-29 12:04
缺点是 不能面向对象

可以的哟,只要你能抽像出来。

C++ 也是架在C基础上的呀!

wicy001 发表于 2014-11-29 13:35:34

wind2100 发表于 2014-11-29 13:19
typedef struct tStr
{
   char strA;


数组的大小,和数组里存的数据个数,是两个不同的概念。

这种方法,只是针对你LZ位,说明用指针可以返回数组大小而已。 平时取数组大小,都是用12楼的方法。

现在才知道,你原来想取字符串的长度, 请用strlen()函数,用之前包含头文件<string.h>。

wicy001 发表于 2014-11-29 13:37:27

wind2100 发表于 2014-11-29 13:25
害得我,这样做了。
//=============================================================================== ...

百度 strlen 可以满足你。

你这基本功不扎实呀。

snoopyzz 发表于 2014-11-29 13:38:12

彼岸花开@ 发表于 2014-11-29 10:15
1、如果在初始化的时候,没有定义数组的大小。在后边使用的时候数组的中被赋值。。。那么使用sizeof 统计 ...

完全错误, C语言不存在因为没定义大小就可以 随意增加数组大小的可能...

C89中不允许不指定数组大小的同时不给初始数据
C99允许, 但定义出的是0字节数组

另, C89数组只能静态定义大小, C99局部数组可以动态定义大小
但都不存在定义后直接增加的可能性...你这么做就是数组越界

richyhuang 发表于 2014-11-29 13:39:39

世界上面没有什么东西是完美的.c语言也不例外,

子鱼 发表于 2014-11-29 13:40:45

指针和数组应该看用在什么地方 才能进行评价

wind2100 发表于 2014-11-29 13:41:23

chengz 发表于 2014-11-29 11:53
没有数组越界检测,没有内存自动回收。。。。

原来大家都喜欢 傻瓜式编程! {:lol:}

越界的事:我觉得可以在编译器上面动手脚,编译的时候知道,数组大小,data,0-99   data如果x > 99就跳过这一条指令。

函数退出来,你申请的动态内存就 释放了 ,但在PC上,free ,delete

wicy001 发表于 2014-11-29 13:44:17

选自百度, 把这几个例子弄懂了,应该可以满足你的要求

char* ss = "0123456789";
sizeof( ss) 结果 4 ===》ss是指向字符串常量的字符指针
sizeof(*ss) 结果 1 ===》*ss是第一个字符
大部分编译程序 在编译的时候就把sizeof计算过了 是类型或是变量的长度
这就是sizeof(x)可以用来定义数组维数的原因
char str="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //而b=20;
char ss[] = "0123456789";
sizeof(ss) 结果 11 ===》ss是数组,计算到\0位置,因此是10+1
sizeof(*ss) 结果 1 ===》*ss是第一个字符
char ss = "0123456789";
sizeof(ss) 结果是100 ===》ss表示在内存中的大小 100×1
strlen(ss) 结果是10 ===》strlen是个函数,内部实现是用一个循环计算到\0之前为止
int ss = "0123456789";
sizeof(ss) 结果 400 ===》ss表示在内存中的大小 100×4
strlen(ss) 错误 ===》strlen的参数只能是char* 且必须是以'\0'结尾的
char q[]="abc";
char p[]="a\n";
sizeof(q),sizeof(p),strlen(q),strlen(p);
结果是 4 3 3 2

Edesigner. 发表于 2014-11-29 13:48:55

做了13年电子,写了13年C代码,感觉挺累的。

wind2100 发表于 2014-11-29 13:52:52

wicy001 发表于 2014-11-29 13:35
数组的大小,和数组里存的数据个数,是两个不同的概念。

这种方法,只是针对你LZ位,说明用指针可以返回 ...

一下忘记了,晕了。。。 多谢指点,这下子,多了一种办法了。

彼岸花开@ 发表于 2014-11-29 14:28:45

snoopyzz 发表于 2014-11-29 13:38
完全错误, C语言不存在因为没定义大小就可以 随意增加数组大小的可能...

C89中不允许不指定数组大小的同 ...

1、谢谢指出错误。。给出了C89 C99 的不得同。
2、在17 楼已经重新写了体会。如下:
               1、 对于静态数组。 他的长度在定义数组后,就确实了。
                                        使用静态数组。方法一:是定义数组时同时定义数组的长度,同时给这个数组赋初值。这种不太常用。方法二:定义数组的时候不定义数组的长度,但是给数组初值。
                              方法三:定义数组的同时。定义数组的长度,但不给数组赋初值。这三种方法都能编译通过。方法四:定义数组的同时。不定义数组的长度也不给数组赋初值。。keil5 编译失败。
                              方法四编译不通过。也说明了静态数组在定义后,数组长度就就确定了
                2 、明白了动态数组是申请内存来了。我的第一点,将静态数组和动态数组搞混了

lyyyuna 发表于 2014-11-29 14:46:24

sizeof 不是函数,相当于宏,编译时展开。
其针对类型求解。如果 a 是数组,sizeof(a) 就是数组长度, 如果 a 是指针,那就是指针这个类型的长度。

snoopyzz 发表于 2014-11-29 14:48:21

彼岸花开@ 发表于 2014-11-29 14:28
1、谢谢指出错误。。给出了C89 C99 的不得同。
2、在17 楼已经重新写了体会。如下:
               1、 对于静态数 ...

在MDK里人工加上-c99就应该可以定义没长度的数组也不给初值了...但此时数组长度是0

加了-c99也可以用动态数组,C99中的名字叫变长数组, 适用于局部数组变量, 其长度可以用一个变量来指定

另外用malloc 申请内存(分配在堆上), 也可以变向当数组来用, 但记得要free掉,
变长数组分配在栈上, 作用域一结束栈就自动还原了所以不用人工释放

lyyyuna 发表于 2014-11-29 14:52:17

snoopyzz 发表于 2014-11-29 13:38
完全错误, C语言不存在因为没定义大小就可以 随意增加数组大小的可能...

C89中不允许不指定数组大小的同 ...

局部数组动态大小。
学到了,我想应该是通过在栈上 SP-X, X 可变实现的。

cddx 发表于 2014-11-29 16:54:15

本帖最后由 cddx 于 2014-11-29 17:43 编辑

不要忘了当初发明C语音是为了替代汇编语言写操作系统软件的,所以有些所谓的“缺点”并不是真正的缺点哦,她有一个重要假定就是编程员自己知道要干什么,只是后来C发展的太好了,以至于大家把它用在了几乎所有领域,还繁衍出一个庞大类C家族,C++、C#、java、python、objective-c、lua等。

wind2100 发表于 2014-11-29 17:05:49

OK   现在发现另一种办法了,辛苦了各位,希望大家都学到

#include <stdio.h>
#include <string.h>
#include “std.h”

typedef struct tStr
{
   char str;
}
Str_Type;


const Str_Type StrA[]={//const
"123",
"56789",
"12356789"
};

Str_Type *pStr = (Str_Type *)StrA;


int main(int argc, char *argv[])
{
        u16 i = 1;

   
   while(i--)
   {         
          printf("pStr===>%d \n",strlen( (pStr+2)->str ) );
          printf("pStr===>%s \n",(pStr+2)->str);          
   }
   
        return 0;
}

jinyi7016 发表于 2014-11-29 18:51:15

怎么发到这儿来了?

jinyi7016 发表于 2014-11-29 18:51:15

怎么发到这儿来了?

823032003 发表于 2014-11-29 21:19:31

指针有优点,也有缺点,关键看怎么用

kinsno 发表于 2014-11-29 21:42:19

笑了,这个真的是纯属月经贴;

rainsun 发表于 2014-11-29 21:55:12

感觉这个不应该算缺点,其他不用这样的动态语言也各有利弊

MINGYU40 发表于 2014-11-29 22:28:46

LZ ,是游戏就要有规则!

MINGYU40 发表于 2014-11-29 22:30:15

C的定义就是这样的,这根分配内存有关!

DevLabs 发表于 2014-11-30 08:23:20

wind2100 发表于 2014-11-29 13:41
原来大家都喜欢 傻瓜式编程!

越界的事:我觉得可以在编译器上面动手脚,编译的时候知道,数组 ...

只检测数组的话问题不大,但由于指针的存在,当使用指针操作数组时就傻了,这种情况要检测越界开销就太大了。
说到底,C语言就是高级点的汇编,最后会生成什么样的指令是可以做到心里有数的,它不会给你添加额外的信息,给你充分的自由,就像双刃剑吧,威力无穷,耍不好会伤着自己。

百里屠苏 发表于 2014-11-30 08:42:26

高手们说说如何掌握C指针,有书推荐吗

专注XXOO三十年 发表于 2014-11-30 10:12:30

大家来说说机器码的缺点……
其实C语言这种神通的语言,缺点都是可以克服的,克服不了的,只能说水平太次。

llz 发表于 2014-11-30 10:16:00

没有注释基本看不出你想干什么!

security 发表于 2014-11-30 16:05:55

百里屠苏 发表于 2014-11-30 08:42
高手们说说如何掌握C指针,有书推荐吗

手不够高,但也蛮推荐下:
国内:
高质量C++/C编程指南 -- 林锐。
C语言深度解剖。

国外:
c陷阱与缺陷。
C专家编程。

heqibin 发表于 2014-11-30 16:45:00

cddx 发表于 2014-11-29 16:54
不要忘了当初发明C语音是为了替代汇编语言写操作系统软件的,所以有些所谓的“缺点”并不是真正的缺点哦, ...

十分同意,看看linux系统就是用c写的

百里屠苏 发表于 2014-11-30 17:03:24

security 发表于 2014-11-30 16:05
手不够高,但也蛮推荐下:
国内:
高质量C++/C编程指南 -- 林锐。


多谢,看看当当上有没有先

我爱大秦 发表于 2014-11-30 17:05:54

C plus不错,这门语言不是刚出来的,存在了几十年,自然有其道理!指针是精华,用不好是自己的事了。

jiang887786 发表于 2014-11-30 17:15:36

security 发表于 2014-11-30 16:05
手不够高,但也蛮推荐下:
国内:
高质量C++/C编程指南 -- 林锐。


我想看看C++的资料,谢谢推荐。话说当初看曾怡的C语言学的c。记得好像她说过还有指向指针的指针呢?

starting 发表于 2014-11-30 18:33:29

c语言这么博大,应该不是咱们能讨论的吧

bruce_helen 发表于 2014-11-30 20:17:48

专注XXOO三十年 发表于 2014-11-30 10:12
大家来说说机器码的缺点……
其实C语言这种神通的语言,缺点都是可以克服的,克服不了的,只能说水平太次。 ...

+1
C语言太灵活了,用的不好,只能说明你不行

bruce_helen 发表于 2014-11-30 20:21:10

我爱大秦 发表于 2014-11-30 17:05
C plus不错,这门语言不是刚出来的,存在了几十年,自然有其道理!指针是精华,用不好是自己的事了。 ...

+1
存在即理由,好东西能经得起时间的考验
C语言在TIOBE上排名一直都很稳定。

我爱大秦 发表于 2014-11-30 20:25:41

bruce_helen 发表于 2014-11-30 20:21
+1
存在即理由,好东西能经得起时间的考验
C语言在TIOBE上排名一直都很稳定。


兄台这有图有真相呀!

activeleo 发表于 2014-11-30 20:28:49

建议楼主好好看看C语言缺陷。。。。。那本书!你说C问题多,但是VxWorks就是C语言的!

shawyao 发表于 2014-11-30 21:53:53

C语言的一些比如时序问题,内存分配问题可以用其他办法拟补,总体来说还是很经典的语言,需要学习的很多。

wind2100 发表于 2014-12-1 08:41:07

在wicy001 的引导下,已经有了第二种办法,定义字符串 不用再定义长度了,

如果再定义数组,还没试过,用什么办法,留下给你们自己想了。

他们后来的人根本不知道,我们想达到一个什么样的目的:
就是为了解决不定义数据长度,而通过指针去知道这个数据的长度。(字符串已经搞定) 见
42楼的例子。

holts2 发表于 2014-12-1 08:45:18

仍然认为是最好的嵌入开发语言

johnlj 发表于 2014-12-1 09:10:23

c语言的小问题有,不过依然是目前最通用,生命力最强的语言,没有之一

leebilly007 发表于 2014-12-1 13:36:30

你说的这个问题是你使用方法的缺陷,与C语言本身无关

yangwc 发表于 2014-12-1 15:05:15

彼岸花开@ 发表于 2014-11-29 10:15
1、如果在初始化的时候,没有定义数组的大小。在后边使用的时候数组的中被赋值。。。那么使用sizeof 统计 ...

数组的最后不是“\0”,字符串才是。

彼岸花开@ 发表于 2014-12-1 15:16:26

yangwc 发表于 2014-12-1 15:05
数组的最后不是“\0”,字符串才是。

1.谢谢指点
2 之前有点蒙了,也是没有对数组和字符串有一个更加明确的认识

hyghyg1234 发表于 2014-12-1 15:34:54

leebilly007 发表于 2014-12-1 13:36
你说的这个问题是你使用方法的缺陷,与C语言本身无关

说的对。

dukang 发表于 2014-12-1 18:26:19

C语言还是最实在的语言嘛

lzl000 发表于 2014-12-1 19:43:21

C还是一个很好的工具。能够同时连接底层和应用层。如果更高级语言,比较容易产生冗余,对硬件要求高

xiexie943 发表于 2014-12-1 20:47:36

C语言还是不错的,有些特殊用途的话需要用函数来解决了

fhslh 发表于 2014-12-1 21:48:32

封装特性差,第一反应

am3359 发表于 2014-12-2 12:27:46

C语言怎么会有缺陷,只有编译器会有缺陷,或者设计思路有问题

javabean 发表于 2014-12-2 12:43:14

C的缺陷倒是没有,因为英文缺陷叫bug,bug是编译器或者编程者造成的,编程语言语法之类没有缺陷
如果觉得c不好使,可以换C#,Java之类的语言,类库丰富,功能简洁
如果搞嵌入式觉得C不好用,建议试试汇编,然后你就会觉得C很好很强大了{:titter:}

openm4 发表于 2014-12-2 13:08:19

指针操作不好就有问题。。。

openm4 发表于 2014-12-2 13:11:40

可是我只会C啊。。。

子鱼 发表于 2014-12-2 13:15:12

字符串截止符为\0,可以判断这个为结束标志 pData== NULL 就可以了

wind2100 发表于 2014-12-2 13:25:30

子鱼 发表于 2014-12-2 13:15
字符串截止符为\0,可以判断这个为结束标志 pData== NULL 就可以了

是的,还好 我的例子是字符串,如果是数组, 就无能为力了。
所以,如果是数组还是得加结束符 标志 或是定义字节数。

dxzky 发表于 2014-12-2 15:11:46

wicy001对strlen和sizef说的很清楚,指针还是使用者方法差异导致结果不同。个人之见,C的精华在于指针,劣势也在于指针,具体好坏看人怎么用。

jiwx2011 发表于 2014-12-2 15:12:27

zhangchaoying 发表于 2014-11-29 11:17
指针,C语言的利器。学好不容易。

是的,深有同感

yanyanyan168 发表于 2014-12-2 15:29:48

怎么发到这儿来了?

Savent 发表于 2014-12-2 19:37:50

你可以定义数组类的链表嘛,我觉着用着很好用的,C语言结构清晰,是难得的学习编程的工具,其他语言总的来说语句倒是很多,就是难得背呢

子鱼 发表于 2014-12-2 19:57:52

wicy001对strlen和sizeof介绍的很详细,尤其是给出的例子很好 可以参考一下

songjie 发表于 2014-12-2 22:17:36

strlen不是能知道数组里面“内容”的大小啊~ strlen是判断\0的。

sizeof可以判断 类型的大小啊~

songjie 发表于 2014-12-2 22:18:33

这个不应该是缺陷吧~

是没有使用好吧~

wind2100 发表于 2014-12-2 23:16:43

songjie 发表于 2014-12-2 22:18
这个不应该是缺陷吧~

是没有使用好吧~

你说对了,是c没这功能了,要定义数据数,不然你要怎样用好?图片这些都有大小的,你改错,就飞出去了,不信你试试

superrf 发表于 2014-12-18 14:14:39

这也算缺点?楼主以前用什么开发语言

wind2100 发表于 2014-12-18 15:31:49

superrf 发表于 2014-12-18 14:14
这也算缺点?楼主以前用什么开发语言

不要拿刀锋对着自己砍就好了。。。

superrf 发表于 2014-12-18 15:49:24

不同的语言有不同的优缺点,用好就行
在嵌入式领域C语言优势明显
C语言的历史和市场占有率说明了一切。

achild 发表于 2014-12-18 17:07:41

楼主萌萌的,问题萌萌的!!

craigtao 发表于 2014-12-19 08:46:31

指针在汇编下看的话,就是寄存器间接寻址或者更往里一层

craigtao 发表于 2014-12-19 08:47:14

花点时间看看汇编还有C标准与实现,就能更深入了解C的特点,

Eric_Xue 发表于 2014-12-19 08:52:46

LZ应再开一帖,标题我都替LZ想好了:“大家说来说自己对C语言的偏见”

ijlc1314 发表于 2014-12-19 09:05:37

javabean 发表于 2014-12-2 12:43
C的缺陷倒是没有,因为英文缺陷叫bug,bug是编译器或者编程者造成的,编程语言语法之类没有缺陷
如果觉得c ...

其实搞过汇编,对理解C的指针是挺有帮助的

wind2100 发表于 2014-12-19 11:20:27

其实目的 只有一个,要更快速,更简单的编程,达到自己想要的目的。
所以才不断衍生出很多高级语言。 像C#OBC C++ JAVA PASCAL等等

craigtao 发表于 2014-12-20 14:28:20

1米49 发表于 2014-11-29 10:31
指针,运用的好就是神器,非常好用,实用。但是运用不好 对整个系统来说 就是灾难。
任何东西都有利有弊, ...

能详细举个例子吗?展示一下楼主说话和实际能力的功底如何!

racede 发表于 2014-12-20 14:30:02

不支持OO和运算符重载

GodHunter 发表于 2014-12-20 17:04:23

都快把C语言给忘掉了
页: [1] 2
查看完整版本: 大家说来说C语言的缺点