第五节课 (数组)

来源:互联网 发布:邮件营销软件破解 编辑:程序博客网 时间:2024/06/08 09:09

数组不赋值时为随机值
初始化之后不可真题赋值
1.
void InitArr() 局部变量在栈中存放(栈是由高低之向低地址增长)
{
}
arr[1] 在栈中是 arr[0]
arr[1] 这样存放
2.
数组 哨兵位 (防止数据越界)
在C中哨兵值是用来控制一个程序,或一次输入等何时结束的值。
在这个数组中我估计是用来控制你输入的值的个数,防止超出你定义的数组大小!
如:
int array [4],而你却输入了5个值,这样程序就会报错!
3.
测量数组的长度
int len;
len=sizeof(arr)/sizeof(arr[0])
然后 用len 代替数组的长度
4.
数组中 数组的名字为数组首元素首地址的首地址
5.
野指针
野指针指指向一个已删除的对象或未申请访问受限内存区域的指针。与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯来尽力减少。对野指针进行操作很容易造成程序错误。
如何避免**
1.定义时指向设定的空间
2.定义为空
6.
%s遇到’|0’才停止
二: 程序解析。
1
void Swap1(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
}
a和b是形参 只传值不可改变

2
void Swap2(int *p,int *q)
{
int *tmp ;//野指针
*tmp = *p;
*p = *q;
*q = *tmp;
}
由于*temp是野指针所以错误,应改为 int *tmp = NULL;

3
void Swap3(int *p,int *q)//正确版本
{
int tmp = *p;
*p = *q;
*q = tmp;
}

4
void Swap4(int *p,int *q)
{
int *tmp = p;
p = q;
q = tmp;
}
只是交换了指针的地址没有换值

原创粉丝点击