C语言系列(二):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序
2013-05-21 19:19
537 查看
写在前面的话:本系列主要是自己在c语言运用时,对一些不了解,但开源代码中常用的技巧,和一些c语言中偏门和易错点进行解析。
加入了自己的分析,如果不到位请多海涵,另外,引用一些非常好的文章(都有引用link),重新组织,便于读者全面认识C语言。
上一篇 因我的编辑方式采用图片形式,少于200字还不让发,我晕~
上一个link:/article/5611228.html
下一篇:/article/5611230.html
许多人(我也经常如此)认为数组名就是指针,这是一种误解。这一节详解他们之间的区别点与相同点:
看下面code:
下面引用:详细介绍C与C++数组名与指针区别(不知是哪位大神写的,很不错~,可惜找不到link了)
既然数组名不是指针,而为什么到处都把数组名当指针用?于是乎,许多程序员得出这样的结论:数组名(主)是(系)不是指针的指针(表)。整个一魔鬼~~
揭密数组名
现在到揭露数组名本质的时候了,先给出三个结论:
(1)数组名的内涵在于其指代实体是一种数据结构,这种数据结构就是数组;
(2)数组名的外延在于其可以转换为指向其指代实体的指针,而且是一个指针常量;
(3)指向数组的指针则是另外一种变量类型(在WIN32平台下,长度为4),仅仅意味着数组的存放地址!
加入了自己的分析,如果不到位请多海涵,另外,引用一些非常好的文章(都有引用link),重新组织,便于读者全面认识C语言。
上一篇 因我的编辑方式采用图片形式,少于200字还不让发,我晕~
上一个link:/article/5611228.html
下一篇:/article/5611230.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),仅仅意味着数组的存放地址!
相关文章推荐
- C语言系列(四):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序
- C语言系列(一):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序
- C语言系列(三):最近重拾C语言的想法,谈到C中易错点,难点;以及开源代码中C语言的一些常用技巧,以及如何利用define、typedef、const等写健壮的C程序
- 如何利用gdb调试程序之细节(info reg命令以及寄存器地址)
- C语言和快速排序以及一些想法
- <android> 常用但容易忘记的一些代码和技巧 汇总(个人笔记)
- 初识:如何实现利用C语言代码封装成可以安装的windows软件?
- (转)详解Vs2008下打包安装程序的一些技巧(含win7下提权限、卸载以及安装时定向到网页)
- **如何让程序运行更快时间更短C语言代码(程序员必看)
- 关于C语言中static,const,volatile与typedef的一些总结
- 详解Vs2008下打包安装程序的一些技巧(含win7下提权限、卸载以及安装时定向到网页)
- 阅读代码和修改别人代码的一些技巧以及注意事项
- 最近看到关于ASP.NET程序中常用代码汇总的,,转贴出来,,
- Github网站加载不完全,响应超时,如何解决 Github是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作编码。毫不夸张地说,高效利用Github是一
- 学了C语言,如何利用cURL写一个程序验证某个网址的有效性?
- 敲代码时的一些常用技巧
- 【Linux_Fedora_应用系列】_5_如何安装XZ Utils 解压缩工具以及利用 xz工具来解压缩.xz文件
- 微信小程序开发常用技巧(9)——使用模板文件方便公共代码开发
- 阅读代码和修改别人代码的一些技巧以及注意事项
- C语言的一些常用代码