C++中typedef和define的区别还是没理解,就写了个简单的程序想从实验上看,结果出了异常
C++中typedef和define的区别还是没理解,就写了个简单的程序想从实验上看,结果出了错误,请教各位
#include "stdafx.h"
#include<iostream>
using namespace std;
#define PINT int*
typedef int* pint;
int _tmain(int argc, _TCHAR* argv[])
{
const pint a;
const PINT b;
cout << "输入两个整形数";
cin >> *a >>*b;
cout << (*a+1)<<*b;
return(0);
}
------解决思路----------------------
你程序出错的原因是定义了两个指针,没有指向地方(野指针)
你却给他们指向的地方(不知道指向哪里)赋值,程序出错
------解决思路----------------------
typedef 是定义一种新的类型
#define 只是一个宏替换
------解决思路----------------------
VC编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E http://bbs.****.net/topics/391003898
------解决思路----------------------
她们是不一样的。
一个是:
int * const a;
int const *b;
------解决思路----------------------
所以对于 int * const a; 必须在定义的时候赋初值。
#include "stdafx.h"
#include<iostream>
using namespace std;
#define PINT int*
typedef int* pint;
int _tmain(int argc, _TCHAR* argv[])
{
const pint a;
const PINT b;
cout << "输入两个整形数";
cin >> *a >>*b;
cout << (*a+1)<<*b;
return(0);
}
------解决思路----------------------
你程序出错的原因是定义了两个指针,没有指向地方(野指针)
你却给他们指向的地方(不知道指向哪里)赋值,程序出错
------解决思路----------------------
typedef 是定义一种新的类型
#define 只是一个宏替换
------解决思路----------------------
VC编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E http://bbs.****.net/topics/391003898
------解决思路----------------------
她们是不一样的。
一个是:
int * const a;
int const *b;
------解决思路----------------------
所以对于 int * const a; 必须在定义的时候赋初值。