C++学习笔记------指针与字符串

指针类型

基本数据类型指针、数组指针、多级指针、指针数组

指针赋值方式:

  1. 相同类型变量的地址
  2. 相同类型的指针变量
  3. 数组名
  4. 字符串
  5. 函数名

字符串有自己独立的内存空间.

//把字符串中每一个字符拷贝给数组的每一个元素。字符串有自己独立内存,数组有自己的内存.
	char c[10] = "abcd";
	char c1[10] = "abcd";
	//c[10] = "abcd";错误。数组越界,类型不匹配
	//c = "abcd";错误。常量不能赋值
	//把字符串的首地址初始化给字符指针.字符指针有自己独立的内存。
	char *pc = "abcd";
	pc = "abcd";
	char *pc1 = "abcd";
	cout << (c == c1) << endl;//0
	//相同字符串内存地址相同
	cout << (pc == pc1) << endl;//1
	cout << (strlen(pc) == strlen(pc1)) << endl;

	cout << pc << endl;//输出字符串(指针指向的字符串)
	//获取字符串的第一个字符
	cout << *pc << endl;
	//获取指针变量自己的地址
	cout << &pc << endl;
	//获取字符串的首地址(强转为其他类型的指针)
	cout << (void*)pc << endl;

	char c2[10] = "abcd\0def";
	int *pInt = (int*)c2;
	pc = (char*)(pInt + 1);
	cout << pc << endl;//空串
	char *cpChar[4] = {
		{ "abcd" },
		{ "hello" },
		{ "monster" },
		{ "hero" }
	};
	char **ppchar = cpChar;
	cout << *ppchar << endl;//abcd
	cout << *++ppchar << endl;//hello
	cout << ++ppchar[1] << endl;//onster

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值