大家说来说C语言的缺点

2020-02-11 09:53发布

我就感觉这个特不方便。
1.我发现,要定义一个数组或是字符串,最好要定义数组的大小,不然,如果后面要用指针来操作这个数组,没办法知道  数组大小,整个程序就OVER。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
1米49
1楼-- · 2020-02-13 15:18
zhangchaoying 发表于 2014-11-29 11:17
指针,C语言的利器。学好不容易。

我也是会使用一点,都是参考别人,然后拿来用,其实像回调函数什么乱七八糟的,看的时候理解了,过段时间不用又忘记了,哎。
指向函数的指针,一直都没怎么用好
chengz
2楼-- · 2020-02-13 20:33
没有数组越界检测,没有内存自动回收。。。。
swap2013
3楼-- · 2020-02-13 22:05
 精彩回答 2  元偷偷看……
wind2100
4楼-- · 2020-02-14 00:16
有时都不敢用指针
wind2100
5楼-- · 2020-02-14 06:03
wicy001 发表于 2014-11-29 10:24
在定义指针的时,指针指向的东西就有大小。
比如 char* p, sizeof(*p)也只能是一个char

typedef struct tStr
{
   char strA[6];
   char strB[12];
}
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 ",sizeof(pStr->strA));            
   }
   
        return 0;
}

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

wind2100
6楼-- · 2020-02-14 08:57
其实我是想,能不能不定义数据的字节数,

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

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

一周热门 更多>