2017.1.3linux下的C,数组与指针

数组实际上就是一组相同数据类型变量

使用数组以前需要定义一个数组。

C语言中数组的下标从0开始(不同于MATLAB中的1访问不存在的数组变量时,程序就会发生溢出错误

在本质上,数组是内存上一组同类信息列出的一个表

4.1.2 数组的定义和访问

数组的定义,指的是在内存中开辟一块存储空间,生成一个空数组

如:int a [10],  float f [20], char s [5]

也可以不指定变量的个数,如: char a [];

c语言NULL和0区别:http://blog.csdn.net/shisiye15/article/details/7827689

C语言问题出现warning: comparison between pointer and integer警告在while(a[I]!=NULL)处,请教高手:https://zhidao.baidu.com/question/237350754.html

一定要注意!!!!!!printf和Printf----一个大小写,浪费了30分钟,一定要注意大小写,但与此同时也重新温习了C语言程序的编译和调试。
4.2指针
指针是一种特殊的数据类型, 用来存储一个变量的地址
通过一个指针,可以 访问这个 指针所指向的变量
程序中的变量都是以 字节的形式存储在 内存单元中。这些内存单元都有一个 编号,这个 编号就是程序中的指针

4.2.2 指针操作符
指针操作符有 *&两个,分别实现 取变量取地址的操作。
&可以实现 取一个变量的地址的功能。
例子1:
int *p;  定义一个指针变量
int i=5;  定义一个整形变量
p=&i;  取变量i的地址赋值给p

例子2
int *p;      定义一个指针变量
int i=5, j;   定义整形变量
p=&i;   取变量i的地址赋值给p
j=*p;  取指针p所指向变量值给变量j

4.2.3 指针的定义与访问
定义指针变量时,需要考虑到 这个指针所指向变量的数据类型
定义指针的方法,是在变量前面加一个“ *”。
如: int *p1   ;  char *p2;   float *p3; 
在程序中, 常常通过指针来访问一个变量的值
4.2.4 指针使用实例
中间指针变量交换两个指针变量的值。
4.3 数组与指针
除了可以用 下标访问数组元素外,也可以用 数组的指针访问数据变量。
4.3.1 数组与指针的关系
定义一个数组的时候,就是定义这个数组的 头指针,然后分配若干存储单元。
定义的数组名称是可以直接赋值给一个指针的,并且这个指针可以指向这个数组的第一个元素
4.3.2  指针的算术运算
指针可以做 加法减法运算。相当于指针的位置从这一位置向后或向前移动若干个 单元。此处的单元,指的是可以存储相应的变量的 内存空间不一定是多少个字节
4.3.3 字符数组与字符串
字符数组是一种特殊的数组'\0'要注意。
4.4 二维数组与多维数组
4.4.2 二维数组与指针
q=p+(行数*总列数)+列数
数组可以在程序中实现数据存储
冒泡法排序实例:---C语言中的经典算法。
统计字符串中字符------ASCII码------每一个ASCII码在内存中占据 一个字节
小写字母转换成大写字母-----一个小写字母的ASCII码减去 32,就是相应的大写字母。
指针访问数组

4.6 常见问题
指针可以 对内存进行读写操作。----会造成内存数据的错误。--- 当对指针进行写操作时,错误的操作可以破坏内存中其他程序的数据
在使用指针时,需要牢记, 不可以随意向不确定的内存单元写入数据
定义一个指针后,必须对其进行正确的赋值
错误2:错误地将一个数据直接赋值给一个指针变量。
错误3:数组指针的越界错误

小节:数组与指针的知识是 C程序中的重要内容需要建立起直观形象的空间概念














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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值