黑马程序员-C语言数组与指针学习心得
来源:互联网 发布:qq飞车网络不稳定 编辑:程序博客网 时间:2024/06/05 16:33
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、数组的赋值,以下几种都是正确的:
1、int ages[5]={1,2,3,4,5};
2、int ages[5]={1,2}; //开辟的数组内存还是20个字节
3、int ages[5]={[3]=3,[4]};//只给在下标3和4的数组赋初值
4、int ages[]={1,2};//与2的区别在于内存只分配8个字节
5、int ages[‘A’-50]={1,2,3,4};//只要中括号里面是常量就可以。
二、算出可变数组的长度方法:
length=sizeof(array)/sizeof(数据类型)
算出字符串的长度:Length=strlen(array);
三、数组的内存存储
数组名=数组首元素地址=数组的首地址
四、数组与函数
1、数组作为函数的参数,可以省略数组的元素个数,数组作为函数的形参,传递的是地址,修改函数形参数组元素的值,会影响到外面实参的数组。而基本数据类型作为形参,是值传递。
2、数组当做函数的参数传递时,会当做指针变量来使用,指针变量在64bit编译器环境下占据8个字节。
五、字符串
1、 字符串在内存中的存放形式,字符串其实就是各种字符按照一定的顺序储存在数组里。
2、计算字符串长度用strlen()特点:
1.计算的是字符数,而不是数字。例如strlen(“哈abcd”);结果是7,一个汉字算作3个字符
2.计算的字符不包括\0
3.从某个字符的地址开始数字符的个数,直到遇到\0。
六、如何用一个函数实现实返回两个数字的加和减?
#include<stdio.h>int sumandminus(int num1,int num2,int *p);int main(){ inta = 20; intb=10; inhe=0; intcha=0;<span style="white-space:pre"></span>He=sumandminus(a,b,&cha);<span style="white-space:pre"></span>Printf(“和=%d,差=%d\n”,he,cha); }int sumandminus(int num1,int num2,int *p){ *p=num1-num2; Return num1+num2;}
用指针可以间接改变函数外面变量的值,这是一个很好的思路。
七、数组和指针常量的区别:
(1)常量区
存放一些常量字符串
(2)堆
对象
(3)栈
存放局部变量
八、定义字符串的2种方式
1> 利用数组
charname[] = "itcast";
* 特点:字符串里面的字符是可以修改的
* 使用场合:字符串的内容需要经常修改
2> 利用指针
char *name = "itcast";
* 特点:字符串其实是一个常量字符串,里面的字符是不能修改
* 使用场合:字符串的内容不需要修改,而且这个字符串经常使用
3>指针数组与二维数组的相似性:
// 指针数组(字符串数组)
char *names[5] = {"jack", "rose", "jake"};
// 二维字符数组(字符串数组)
char names2[2][10] = {"jack", "rose"};
九、总结
1>指针的使用很灵活,利用指针间接进行操作提供了解决问题的另外一种方法。指针的作用就是用来存放地址,然后通过地址指向的内存空间进行操作。指针无论定义的是哪种数据类型,占用的内存空间都为8字节,定义的变量如果想要用指针来操作,必须具有相同的数据类型,否则编译会警告,且往往会导致结果不正确,这个请用内存来分析。
2>指针与数组虽然长得不像,但是在使用上却非常相似。就拿指针取元素跟数组取元素来说,都可以直接用下标取。当然,指针还有其自身的方法,就是让地址加i,指针通过+i也可以遍历整个数组的元素。
3>指针与字符串,指针与函数的使用都类似与指针与数组,指针与普通的变量。举一反三即可。
- 黑马程序员-C语言数组与指针学习心得
- 黑马程序员—C语言指针与数组
- 黑马程序员-----C语言学习之数组与指针
- 黑马程序员---c语言基础---数组、指针
- 【黑马程序员】C语言数组指针以及指针数组
- 黑马程序员----C 语言学习笔记之数组指针与字符串指针
- 黑马程序员---C语言数组与字符串
- 黑马程序员---C语言数组与字符串
- 黑马程序员-C语言-数组与字符串
- 黑马程序员—C语言学习心得
- 黑马程序员-C语言基础学习心得-01
- 黑马程序员-C语言基础学习心得-02
- 黑马程序员--C语言--01-指针数组、指向数组的指针、指向指针的指针
- 黑马程序员04--C语言--01-指针数组、指向数组的指针、指向指针的指针
- 黑马程序员----C语言复杂数据类型之数组(字符串)与指针篇
- 黑马程序员—IOS基础之C语言—数组与指针
- 黑马程序员——ios开发基础之C语言数组、指针与结构体
- 黑马程序员 _4 C语言基础 数组,指针,字符串
- appcan学习心得 第一天
- java4Android(5)分支语句-if...else...判断语句
- 自己U盘插自己电脑显示不了,插别人电脑有用,自己电脑插别的U盘有用的解决方法
- 设计模式(主要java)
- html初步 (一)
- 黑马程序员-C语言数组与指针学习心得
- 码农提高工作效率
- 黑马程序员——多线程(三)
- 线程安全和资源共享(Thread Safety and Shared Resources)
- Python学习第三篇之pass的作用
- 社会化海量数据采集爬虫框架搭建
- curl发送post和get请求
- 浅析图标的微观世界――从符号学说起
- 面向接口对象