• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C语言系列(二):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

写在前面的话:本系列主要是自己在c语言运用时,对一些不了解,但开源代码中常用的技巧,和一些c语言中偏门和易错点进行解析。

加入了自己的分析,如果不到位请多海涵,另外,引用一些非常好的文章(都有引用link),重新组织,便于读者全面认识C语言。

上一篇 因我的编辑方式采用图片形式,少于200字还不让发,我晕~

上一个link:http://www.cnblogs.com/lwer/archive/2013/05/21/3091264.html

下一篇:http://www.cnblogs.com/lwer/archive/2013/05/21/3091394.html

许多人(我也经常如此)认为数组名就是指针,这是一种误解。这一节详解他们之间的区别点与相同点:

看下面code:

  int* tran;
  int b[10];
  tran = b;
  cout<<b<<endl;
  cout<<tran<<endl;//两者结果一样
  //看到上述代码,真是一模一样  如果你认为如此的话 估计你上C语言程序设计的课上睡着了 接着往下看 ~~~~
  cout<<sizeof(b)<<endl;//结果为40 (注:32bit 机,可能不同位数的机器结果会不一样) 
  cout<<sizeof(tran)<<endl;//结果为4
  //可能还是看不出有什么端倪  接着往下看~~~~
  tran++;//ok
  b++;//error
  //这下明白了吧,数组名其实是一个指针标量,而指针是一个变量(指针) 

下面引用:详细介绍C与C++数组名与指针区别(不知是哪位大神写的,很不错~,可惜找不到link了)

既然数组名不是指针,而为什么到处都把数组名当指针用?于是乎,许多程序员得出这样的结论:数组名(主)(系)不是指针的指针(表)整个一魔鬼~~

揭密数组名
现在到揭露数组名本质的时候了,先给出三个结论:
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C语言windows下Ansi和UTF-8编码格式的转换发布时间:2022-07-13
下一篇:
C++中0是十进制还是八进制?发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap