关闭

2017.1.3linux下的C,数组与指针

75人阅读 评论(0) 收藏 举报
分类:

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

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

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4641次
    • 积分:519
    • 等级:
    • 排名:千里之外
    • 原创:45篇
    • 转载:26篇
    • 译文:0篇
    • 评论:0条
    文章分类