[求助]小问题,求解答
1)#define pStr char *;pStr s1, s2;
s1都被定义为char *,而s2则定义成了char
2)const char *p1 = string;
const pStr p2 = string;
这两个有什么区别吗?
const是什么意思?
谁能帮忙解释下
----------------解决方案--------------------------------------------------------
1) #define pStr char *;
pStr s1, s2;
这个和下面的一样(将pStr用char *来代替)
char *s1,s2;
要想两个都定义成char *型用typedef
2)两个没区别,const是定义常量
----------------解决方案--------------------------------------------------------
第一个:
1)#define pStr char *;
pStr s1, s2;
pStr s1, s2; 展开是: char * s1,s2;
第二个:
const char *p1 = string;
const pStr p2 = string; 展开const char * p2 = string;
----------------解决方案--------------------------------------------------------
也想知道const是什么意思啊
为什么定义指针的时候要用到const啊???
----------------解决方案--------------------------------------------------------
二楼不是有吗
----------------解决方案--------------------------------------------------------
const 是常变量的定义.
也就是说在定义常变量时要进行初化,
而在后面的程序中不能对常变量的值的修改.
const int i=3;
i=4; /*这是不允许的.*/
const char * pt=string;
使pt 指向不变,在程序中不能让它指向其它变量.
----------------解决方案--------------------------------------------------------
刚刚没注意,现在明白,3Q
----------------解决方案--------------------------------------------------------
我想修改一下我的贴子:
const int * pointer;
pointer 是指向常整型的指针变量,
也就是说它只能指向常整型的变量.
const int i=0;
int j=0;
pointer=&i;
而不能是
pointer=&j; 这是错误的.
int i=0;
int j=0;
const int k=0;
int * const pointer=&i;
pointer 是指向整型的常指针,
也就是说它始终指向一个整型变量,
pointer=&j; /*这是不允许的*/
int * const pointer1=&k;
这也是不允许的,pointer1是指向整型变量,
而k是常变量.
----------------解决方案--------------------------------------------------------
int * const pointer1=&k;
是pointer1还是pointer???
----------------解决方案--------------------------------------------------------
不是,是另外一个例子.
----------------解决方案--------------------------------------------------------