C语言学习9
来源:互联网 发布:韩顺平java spring视频 编辑:程序博客网 时间:2024/05/17 02:37
今天学习了数组与指针,指针与数组
先对内容进行了一下铺垫,
void main1(int *p)
{
int *p1 = p//&p; //在这里赋值给*p1的值是p或&p的区别,如果是p的话最后传入main函数的值会进行改变,这原理主要是通过对地址进行数据更改,&p就不会被改变了,
//因为&p相当于重新定义了一个新的地址,所以不会对传入进来的数值的地址进行更改
*p1 = 100;
}
void main2(int *p)
{
int **p2 = &p; //在这里传入的数值是会被改变的,原理和main1当中传入p是一样的,不过是对变量的地址上的值的地址进行改动,最后输出的结果也就会改变了
**p2 = 200;
}
void main()
{
int a = 2;
int *p = &a;
main1(p);//main2(p);
printf("%d",a);
}
还通过对存储指针的类型进行了讲解,想int a = 10;char *p = &a;这种情况下的输出结果*p是不等于10的,存储指针必须类型要一致,不然很容易出现错误,
下午就讲的数组的用指针取得二维数组的值,主要有以下几种
p = &a将变量a的地址赋给p
p = array将数组array首地址赋给p
p = &array[i]将数组元素的地址赋给p
p = &a[i]+j将数组的第i行第j列赋给p
p1 = p2将指针p2地址赋给p1
只要把赋值给搞明白其实还是很容易理解的,除开赋值之外就是和数组的运用没什么差别了,下午老师也花费了很多的心血把指针的取值进行反复的对比与演练,把数组与数组的关系讲的非常的透彻,主要还是得将取值的思路要清晰
指针对一维数组的取值a[]={1,2,3,4};
p = &(a+i),i是数组的下标取值
数组的第一个元素一般表示a[0],它的地址p1= &a[0],为了方便也可以写成p1 = &(a+0),然后后面的元素就在0的基础上进行增加,写成p = &(a+i)了
针对二维数组的取值a[][3] = {1,2,3,4,5,6,7,8,9};
p=&(a[i]+j);i是数组行的下标,j是数组列的下标
这个也可以通过一维数组的基础上再进行扩展,每行可以当成一维数组当中第一个值的取值p1=&a[0],每行之后就可以在a[i]的后面进行增加数值所在的列数地址p1 = &(a[0]+0),在多行或多列的时候就可以直接在p1的基础上进行增加了,写成p = &(a[i]+j),
- C语言学习9
- C语言学习笔记(9)
- C语言学习笔记9
- C语言学习笔记9
- C语言学习笔记9--结构体
- C语言学习笔记9-指针
- 怎样学习C语言
- 怎样学习C语言
- c语言学习笔记
- C语言学习笔记
- 怎样学习C语言
- C语言学习书籍
- 重新学习C语言
- C语言学习笔记
- 如何学习C语言
- 单片机C语言学习
- c 语言学习
- c 语言学习
- Python解析xml文件(二)
- emmc到底是什么?为什么会火?
- Java中普通代码块,构造代码块,静态代码块区别和优先级
- HTML5-音频和视频
- Android Studio加速构建过程的方法
- C语言学习9
- sybase的安装使用和视图的创建与维护
- 说清楚重要性采样
- jQuery中Select属性/动态添加/事件
- 非常酷!CSS3三角形运用!
- 求二叉树的深度
- Android 6.0 权限适配说明
- 常见浏览器兼容性问题与解决方案
- Java常见异常(Runtime Exception )小结