在c++中,字符指针作形参

#include <iostream>
using namespace std;

class Employee {
	private:
		const char *name;//name;address;city;code;就是字符串首字符的地址
		const char* address;
		const char *city;
		const char *code;
	public:
		Employee(const char *n=" ", const char *add = " ", const char *ct = " ", const char *cd = " "): name(n),address(add),city(ct),code(cd){}
		void display()
		{
			cout << "name:" << name << endl;//用cout可以输出整个字符串
			cout << "address:" << address << endl;
			cout << "city:" << city << endl;
			cout << "code:" << code << endl;
		}
		void change_name(const char *n)
		{
			cout << n << endl;
			name = n;
		}
	};
int main()
{
	Employee e("wangbang", "laobeian", "yichun", "362202");
	e.display();
	e.change_name("bangbang");
	e.display();

	Employee e1;//调用各形参都有默认值的默认构造函数
	e1.display();
	e1.change_name("bangbang");
	e1.display();
	int a = 5,b=8,c=100;
	//通过指针访问变量
	int *p1 = &a;
	cout << *p1 << endl;//5

	//改变指针指向
	p1 = &b;
	cout << *p1<< endl;///8
	//通过指针改变其所指变量的值
	*p1 = 10;
	cout << *p1<< endl;//10
	//通过指针赋值,改变指针指向
	int *p2 = &a;
	p1 = p2;
	cout << *p2 << endl;//5
	cout << *p1<< endl;//5


	const int *p = &c;
	//通过指针访问变量
	cout << *p << endl;//100
	//改变指针指向
	p = &b;
	cout << *p << endl;//b已经变为10

	通过指针改变其所指变量的值
	//*p = 10;//“p”: 不能给常量赋值
	//cout << *p << endl;//10

	//通过指针赋值,改变指针指向
	int *p3= &a;
	p = p3;//5,可以将普通指针改变常指针指向
	cout << *p3 << endl;//5
	cout << *p << endl;//5

	const char *pc = "wangbang";//不能char *pc = "wangbang",会报错!
	cout << *pc << endl;//输出字符串首个字符,说明指针得到的是字符串首个字符的地址
	cout << pc << endl;//为什么这样,输出的是整个字符串?
	cout << (int)pc << endl;//这样输出的才是地址
	return 0;
}

结果:

name:wangbang
address:laobeian
city:yichun
code:362202
bangbang
name:bangbang
address:laobeian
city:yichun
code:362202
name:
address:
city:
code:
bangbang
name:bangbang
address:
city:
code:
5
8
10
5
5
100
10
5
5
w
wangbang
16751472
请按任意键继续. . .
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值