C程序设计进阶 Coursera 第4周 指针

第4周

什么是指针

在这里插入图片描述
概念是指针的基础。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述一个变量的地址占用四个字节。之所以需要地址,是因为操作系统里面需要取址执行。
在这里插入图片描述
在这里插入图片描述

什么是指针变量

在这里插入图片描述
专门用于存放指针的变量
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
变量c和76是不同的。因为变量c是可以覆盖的

指针范例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对指针变量做++

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

指针与数组

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用指针变量访问数组元素

*p++ ++运算符高,
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
指针的安全性不算太好
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二维数组真值

在这里插入图片描述
在这里插入图片描述
二维数据先按行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题:搜索

枚举状态太多,但是可以搜索
在这里插入图片描述
转移方程 在搜索里面不是特别好写
在这里插入图片描述
在这里插入图片描述
有记忆的搜索
在这里插入图片描述
搜索分为无状态搜索
在这里插入图片描述

小例子

1.int类型

	int a = 1;
	int *b;

	b = &a;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	cout << "*&a = " << *&a << endl;
	cout << "&a = " << &a << endl;
	cout << "&b = " << &b << endl;
	cout << "*&b = " << *&b << endl;
	cout << "&*b = " << &*b << endl;

	return 0;

在这里插入图片描述
2.char类型

	char a = 'a';
	char *b;

	b = &a;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	cout << "*&a = " << *&a << endl;
	cout << "&a = " << &a << endl;
	cout << "&b = " << &b << endl;
	cout << "*&b = " << *&b << endl;
	cout << "&*b = " << &*b << endl;

	return 0;

在这里插入图片描述
3.字符串类型

	char a[] = "abc";
	char *b;

	b = a;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	cout << "*&a = " << *&a << endl;
	cout << "&*a = " << &*a << endl;
	cout << "&a = " << &a << endl;
	cout << "&b = " << &b << endl;
	cout << "*&b = " << *&b << endl;
	cout << "&*b = " << &*b << endl;

	return 0;

在这里插入图片描述
4.数组

	int a[] = {1,2,3,4};
	int *b;

	b = a;

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;

	cout << "*&a = " << *&a << endl;
	cout << "&*a = " << &*a << endl;
	cout << "&a = " << &a << endl;
	cout << "&b = " << &b << endl;
	cout << "*&b = " << *&b << endl;
	cout << "&*b = " << &*b << endl;

	return 0;

在这里插入图片描述
5.
在这里插入图片描述

	char a[] = "hollo,world";

	//a[1] = 'e';

	//char *p = a;
	//p++;
	//*p = 'e';

	//a++;报错
	*(a+1) = 'e';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值