1、指针变量赋值
使用取地址运算符,p = &a;
通过另一个指针变量q赋值,p = q;
注意:*p = *q;p = q;
指针作为参数传递;
指针的好处,值传递不够改变实参的值,而通过传递实参的地址,可以通过指针改变实参的值;
练习:找出数组最大元素,和最小元素;
数组不能作为返回值;
-------------------------------------------------------------------------------
1、指针的算数运算,当指针指向数组元素时,可以通过指针的算术运算访问数组的其他元素;
指针加上一个整数,
指针减去一个整数,
两个指针相减(指向同一个数组里面的元素);
指针的算数运算是以元素大小为单位,而不是以字节为单位;
两个指针相减(指针的比较运算,两个数组指向同一数组元素)
2、指针处理数组
&arr[10]:只会计算arr[10]的地址,不会访问arr[10],不会发生数组越界;
(1)*和++的结合(考虑优先级(后置++优先级高))
*p++,*(P++) 表达式的值*p,副作用p自增;
(*p)++ 表达式的值为*p,副作用*p自增;
*++p,*(++p) 表达式的值为*(p+1),副作用p自增;
++*p,++(*p) 表达式的值为*p+1,副作用*p自增;
*和--也有类似用法;
函数返回值不能是数组类型;
程序如何终止:
操作系统调用main函数程序的开始;
main函数把状态码返回给操作系统;
如果不想再main函数中终止程序,exit函数;