C语言的一些知识点
来源:互联网 发布:wpf windows边框样式 编辑:程序博客网 时间:2024/04/29 19:06
1.“#define”和"typedef"的一些区别与联系
#define f(x) x*x
main( )
{
int a=6,b=2,c;
c=f(a) / f(b);
printf("%d \n",c);
}
以下程序的输出结果是: 36。
因为如此原因,在许多C语言编程规范中提到使用#define定义时,如果定义中包含表达式,必须使用括号,则上述定义应该如下定义才对:
#define f(x) (x*x)
当然,如果你使用typedef就没有这样的问题。
详细内容在 http://bbs.csdn.net/topics/90017266
2.const &指针
1)const在前面
const int nValue; //nValue是const
const char *pContent; //*pContent是const, pContent可变
const char* const pContent; //pContent和*pContent都是const
2)const在后面,与上面的声明对等
int const nValue; //nValue是const
char const * pContent; //*pContent是const, pContent可变
char* const pContent; //pContent是const,*pContent可变
char const* const pContent; //pContent和*pContent都是const
答案与分析:
const和指针一起使用是C语言中一个很常见的困惑之处,在实际开发中,特别是在看别人代码的时候,常常会因为这样而不好判断作者的意图,下面讲一下我的判断原则:
const只修饰其后的变量,至于const放在类型前还是类型后并没有区别。如:const int a和int const a都是修饰a为const。注意*不是一种类型,如果*pType之前是某类型,那么pType是指向该类型的指针
一个简单的判断方法:指针运算符*,是从右到左,那么如:char const * pContent,可以理解为char const (* pContent),即* pContent为const,而pContent则是可变的。
0 0
- C语言的一些知识点
- C语言的一些知识点
- C语言一些知识点
- C语言的一些偏僻知识点
- 忘记的C语言中的一些知识点
- C语言内存相关的一些知识点
- C语言数据结构的一些值得注意的知识点
- C语言不太注意的一些知识点
- C语言中的一些容易出现错误的知识点
- linux之c语言开发的一些知识点
- C语言的知识点
- c语言的知识点
- C语言最重要的知识点
- C语言最重要的知识点
- C语言的基础知识点
- 从零开始的C语言知识点
- c语言的一些小的知识点 酒馆浪人的博客
- 关于C++语言的一些小知识点
- [Oracle] opiodr aborting process unknown ospid (***) as a result of ORA-609
- 一款轻量级的桌面应用和Web Server 通讯组件
- 重新开始战斗20-程序员面试宝典-P39_5.5面试题2--求平均数
- OGR DXF Driver
- Codeforces Round #142 (Div. 2) E. Triangles
- C语言的一些知识点
- 理解linux的du用法
- jsp中的注释符号<!-- -->
- 在线播放音乐(解析百度音乐api文档)
- HQL一对多单向外键关联查询
- 输入电阻与输出电阻(放大器为例)
- oracle 11g之ACL拙见
- 常用接口
- Unity使用MonoDevelop快速调试