| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 788 人关注过本帖, 1 人收藏
标题:C语言基础知识
只看楼主 加入收藏
liangyua
Rank: 1
来 自:大连理工大学
等 级:新手上路
帖 子:11
专家分:0
注 册:2013-8-10
结帖率:60%
收藏(1)
已结贴  问题点数:20 回复次数:7 
C语言基础知识
我是一个自学编程的小菜鸟,请高手指教,问变量的定义和变量的说明有什么区别,还有关键字Const和define有什么区别?怎么使用。
搜索更多相关主题的帖子: 基础知识 C语言 关键字 
2013-08-10 08:47
awisebird_
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:82
专家分:185
注 册:2013-7-6
收藏
得分:3 
这个百度一下就知道了
2013-08-10 08:57
h13352825861
Rank: 2
来 自:中国
等 级:论坛游民
威 望:1
帖 子:39
专家分:72
注 册:2013-8-8
收藏
得分:3 
声明变量不分配空间,定义变量要分配空间。
声明主要是告诉编译器,后面的引用都按声明的格式.
定义其实包含了声明的意思,同时要分配内存空间.
定义是从无到有,声明是从有到使用。对于一个简单的单文件的 C 语言程序来说,定义和声明都是一回事。但是你可以参考“函数”的定义与声明,它们就往往是分开的。
#define定义的是符号常量,也可以叫做宏,而Const定义的可以说是冻结的变量。
它们主要的区别是:符号常量并不是变量,它只不过是在编译期间通过预编译命令进行一种“替换”,而Const常量是占有内存的被“冻结”了的变量,C++中使用const常量而不提倡用符号常量。
简单的说const用编译器,#define用预处理
用#define存在很多问题(类型检查,宏扩展错,维护性。。。),所以c++建议使用const代替#define
const是类型安全的,#define不是。
至少分不分内存,是不一定的,#define不分内存,因为它是预编译指令,编译前进行了宏替换。const常量一般不分空间,但如果取它的地址或引用,就会分配空间。
常见的const用法
const int i = 3; //定义常量
const char * a; //指向常量的指针
const char const * a; //指向常量的常量指针
char const * a; //常量指针
int f(const int & f); //const引用是最常见的传大对象的方法
int C::test(int a) const; //const表示test成员函数不改变C的成员变量的值
const int f(); //返回常量值
在C中,定义常量的方法是用编译预定义指令(#define).列如:
# define PI 3.1425926
这条指令的格式是#define 后面跟一个常量名再跟一串字符,中间用空格隔开。由于不是C++语句,所以行末不用分号。
尽管它具有常量的所有属性,但是,在编译预处理完成后,PI不属于C++程序中的名字了,所以它不是一个具有一定类型的常量名。随后的编译无法发现由它引起的数据类型误用的错误。
C++容许#define 定义常量是为了兼容C。在C++编程中,常量定义都用const,不用#define.

相信汗水会让未来充满满了阳光!
2013-08-10 09:10
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:3 
3楼说的对

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-10 10:47
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:3 
define定义的内容在程序中要展开为n个副本,const只有1个

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-08-12 08:09
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:3 
作用范围问题  define 作用于整个程序的所有函数  const  作用一个函数(main函数)

这个怎么玩
2013-08-12 08:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
以下是引用丶弱水彡千在2013-8-12 08:23:29的发言:

作用范围问题  define 作用于整个程序的所有函数  const  作用一个函数(main函数)

谁教你是这样的?

授人以渔,不授人以鱼。
2013-08-12 08:51
银翼德
Rank: 1
等 级:新手上路
帖 子:2
专家分:5
注 册:2013-8-11
收藏
得分:3 
define是宏定义啊,const我也不太清楚。。。
2013-08-13 08:51
快速回复:C语言基础知识
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034158 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved