黑马程序员——C语言基础---数组、指针

                                       ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


一、数组

1.数组就是用来存储一组数据的
2.只能存放一种数据类型的数据
3.数组的基本数据类型:int  float  double  char  
4.数组的定义格式:类型  数组名[元素个数];
5.遍历:查看数组的每一个元素
6.举例
#include <stdio.h>
int main ()
{
	int ages[5] = {9,19,38,40,23};
	//遍历
	for(int i=0;i<5;i++)
	{
		printf("ages[%d]=%d\n",i,ages[i]);
	}
	return 0;
}

7.使用注意

正确写法:
1)int ages[5] = {10,11,12,45,67};
2)int ages[5] = {10,11};
3)int ages[5] = {[3]=10,[4]=11};
4)int ages[ ] = {10,11,12,45,67};

错误写法:
1)int ages[ ]
2)只能在定义数组的同时进行初始化
int ages[5]
ages = {14,23,45,56};
3)如果想在定义数组的同时进行初始化,数组元素个数必须是常量或者不写
int count = 5;
int ages[count] = {12,45,23};

8.数组和函数
1)数组作为已知参数,可以省略元素个数
void change (int array[])
{
array[0] = 100;
}
int main()

9.练习
//设计一个函数,找出整形数组元素的最大值
#include <stdio.h>
int maxOfArray(int array[],int length);
	{
		//定义一个变量存储最大值(默认就是首元素)
		int nax = array[0];
		//遍历所有元素,找出最大值
		for(int i=1;i<length;i++)
		{
		//如果当前元素大于max,就用当前元素覆盖max
			if(array[i]=max)
			{
				max = array[i];
			}
		
		}
		return max;
	}
	int main()
	{
		int ages[] = {123,244,67,78,89}
		int max = maxOfArray(ages,sizeOf(ages)/sizeOf(int))
		printf("%d\n",max);
		return 0;
	}


	return 0;
}

二.指针

1.指针的格式:变量类型 *变量名;
2.指针变量只能存储地址
3.指针变量p指向了变量a:p = &a
4.指针就一个作用:能够根据地址值找到对应的存储空间
5.指针变量p前面的int:指针变量p指向int类型的数据
6.指针练习
#include <stdio.h>
void change(int*n);
int main()
{
	int a = 90;
	change(&a);
	printf("%d\n",a);
    return 0;
}
void change(int*n)
{
	*n = 10;
}

7.使用注意
1)不建议的写法:int*p只能指向int类型的数据
int*p;
double d = 10.0;
p = &d;
2)指针变量只能存储地址
int*p;
p = 200;
3)指针变量未经过初始化,不要拿来间接访问其他存储空间
int*p;
printf("%d\n",*p);
4)不正确的写法:*p = &a
5)定义变量时的*仅仅是一个象征,没有其他特殊含义,int*p = &a;
8.指向指针的指针
1)int*p = &a;
2)int*pp = &p;
3)int*pppp = &pp;

三.指针与数组

1.举例
#include <stdio.h>
int main()
{
	int ages[5] = {13,3,4,6,9};
	int *p;
	//指针变量P指向了数组的首元素
	p = &ages[0];
	//数组名就是数组的地址,也是数组首元素的地址
	for(int i = 0;i<5;i++)
	{
		printf("ages[%d] = %d\n",i,*(p+i))
	}

	return 0;
}

2.数组元素的访问方式
1>数组名[下标] ages[1]
2>指针变量名[下标] p[i]
3>*(p+1)
3.指针变量的+1究竟加多少,取决于指针的类型
1>int* 4
2>char* 1
3>double* 8
3.利用一个指针来接收一个数组,指针变量array指向了数组的首元素
void change(int *array)
{
printf("%d\n",array[2]);
}

四.指针与字符串

1.举例
#include <stdio.h>
int main()
{
	char name[] = "it"
	//指针变量name2指向了字符串的首字符
	char*name2 = "it";
	printf("%s\n",*name2);
	return 0;
}

2.掌握: 定义字符串的2中方式
1>利用数组 char name[] = "itcast";
特点:字符串里面的字符是可以修改的
使用场合:字符串的内容需要经常修改
2>利用指针 char*name = "itcast";
特点:字符串其实是一个常量字符串,里面的字符是不能修改
使用场合:字符串的内容不需要修改,而且这个字符串不需要经常使用

五.返回指针的函数

1.举例
#include <stdio.h>
void test()
{
	printf("调用了test的函数\n");
}
int main()
{
	//(*p)是固定写法,代表指针变量P将来肯定是指向函数
	//左边的void:指针变量P指向的函数没有返回值
	//右边的():指针变量P指向的函数没有[]号
	void (*p)();
	//指针变量p指向了test的函数
	p = test;
	(*p)();//利用指针变量间接调用函数
	//直接调用函数
	test();
	return 0;
}





Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
项目描述:建立购物小商城平台. 实现了前台页面系统。 技术描述:通过Spring 主框架来管理Struts2和Hibernate 框架搭建的电商小平台,用MySQL数据库并创建了表有用户表,订单表,商品表,商品分类表,商品内容表,购物车表等来存储数据。用到hibernate….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值