#define PINT int*与typedef int *SINT的区别.
来源:互联网 发布:网络信用卡有哪些 编辑:程序博客网 时间:2024/06/06 01:54
#define PINT int* #define是预处理指令,简单的宏定义,在编译预处理时进行简单的替换,不作正确性检查,不管含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。
①#define PINT int*是,在预处理阶段就已经将PINT替换为int*了,它与int *不等价
②如果有PINT a,b; //实际就是 int* a,b; a是int型指针b是int型数据
③如果有const PINT p ;//const PINT p就是 const int * p 锁的是指针p所指的对象。p可更改,但是p指向的内容不可更改。
#typedef int*SINT typedef是在编译时处理的。它在自己的作用域内给一个已经存在的类型一个别名,但是在函数定义中不能使用typedef指定符。
①这里typedef int * SINT ;和#define PINT int *的效果一样,只是前者是“起别名”,后者是“字符串替换”
②如果有SINT a,b;//实际上a, b 都为指向int的指针,只是typedef为int* 引入了一个新的助记符
③如果有const SINT p ;//SINT是一种指针类型 ,const SINT p 就是把指针给锁住了 p不可更改,但p指向的内容可更改。
总③:如果 有
const int * a;
const PINT a; <==> const int * b;
const SINT a; <==> const SINT c;
对于#define宏定义,其const修饰的就是指针指向的数值(*b),与cosnt int * a;是一样的(修饰*a)。而typedef其const修饰的是指针,因为SINT被看做是一个整体,而不是int与*两部分。所以cosnt修饰的是c,而不是*c,因为在const SINT c 这条语句中,就不存在* 这个字符。
例:
typedef int *SINT
void main()
{
int *a1,*b1,*c1;
int *a2,b2,c2;
SINT a3,b3,c3;
}
//int*中的*只修饰a2,而b2,c2只是一个int型变量,而SINT作为一个整体,其修饰的是a3,b3,c3三个变量,即三个变量类型都是SINT(即int*)。
- #define PINT int*与typedef int *SINT的区别.
- #define PINT int * 与 typedef int * SINT;
- #define PINT int * typedef int * SINT; 这两的区别及define与undefine用法
- #define PINT int* typedef int *SINT
- typedef int* PINT与#define PINT int*的区别
- 作业1.#define PINT int * 2.typedef int * SINT;
- #define PINT int * typedef int * PINT;的区别
- #define int *PINT和typedef int*PINT
- int* pInt = new int(5)和int* pInt = new int[5]的区别
- typedef int * q与#define p int*区别
- #define a int[10]与 typedef int a[10]用法
- typedef-------typedef void (*sighandler_t)(int)的区别
- int*与(int*)的区别
- typedef与#define的区别
- #typedef与#define的区别
- typedef与define的区别
- typedef与#define 的区别
- typedef与#define 的区别
- Solr配置停止词/排除词 stopwords(mmseg版)
- hdu4283(区间DP)
- 悲观锁乐观锁
- C++多位整形数据相乘的代码
- OutOfMemoryError系列(6): Out of swap space?
- #define PINT int*与typedef int *SINT的区别.
- Java后台框架篇--Spring中Bean的生命周期
- Java SE8 Lambda 基础入门---怎么写lambda表达式
- leetcode---combinations---dfs
- ASM常用命令
- 【BZOJ 1093】【ZJOI 2007】【最大半连通子图】【tarjan强连通分量】【拓扑排序dp】
- Java BufferedReader readLine方法i
- windows中修改tomcat运行窗口的名字
- 如何持久化会话级别的Session