指针||数组&&函数

2021-02-01 06:16

阅读:444

标签:sum函数   i++   class   使用   数值   ble   short   原型   数组名   

1.声明指针:typename *ptrname;  int  * p_rate;

2.初始化指针:p_rate= &rate ; 使用&运算符将变量的地址存储到指针中

3.使用指针:*p_rate

------------------------------------------------分隔符----------------------------------------------------

#include
#define SIZE 4 //把SIZE换成4
int main(void)
{
short dates[SIZE];//定义数组
short * pti;//声明指针
int **pti;//指针的指针

short index;//定义变量
double bills[SIZE];//定义数组
double * ptf; // 声明指针

pti = dates;//把数组地址赋指针
ptf = bills;

printf("%23s %15s\n", "short", "double");//输出
for(index = 0;index printf("pointers + %d; %10p %10p\n", index, pti + index, ptf + index);
return 0;
}

------------------------------------------------分隔符----------------------------------------------------

指针的算术运算:指针+1是增加一个“存储单元”;对于数组(short dates[SIZE])而言+1(dates+1)是下一个元素的地址
指针数组:dates + 2 == &dates[2] //相同的地址,dates首元素代表着数组dates[]的地址,所以dates+2代表着dates[2]的地址,其中&dates[SIZE]代表整数的地址;
*(dates + 2) == dates[2] //相同的值(指针和数组名可以相互表示),*(dates + 2)代表整数值,另外“*”优先级高于“+”,否则*dates+2代表第一个元素的值加2;

------------------------------------------------分隔符----------------------------------------------------

数组名是该数组首元素的地址,int dates[]==int * dates,都是dates指向int的指针。
源码:
//编写一个处理数组的函数,该函数返回数组中所有元素之和,
#include
#define SIZE 10
int sum(int ar[],int n);//只有在函数原型或函数定义头中,才可以用int ar[]代替int * ar
int main(void)
{
int marbles[SIZE] = {20,10,5,39,4,16,19,26,31,20};
long answer;

answer = sum(marbles, SIZE);//marbles代表首元素地址引用传递给sum函数形参指针ar,
printf("The total number of marbles is %ld.\n", answer);
printf("The size of marbles is %zd bytes.\n",
sizeof marbles);

return 0;
}
int sum(int ar[], int n)//这个数组大小是?
{
int i;
int total = 0;

for(i = 0;i total += ar[i];
printf("The size of ar is %zd bytes.\n",sizeof ar);

return total;
}

(ps)函数实参与形参之间的数据传递有两种:
 值传递:数据传递方式有值传递和引用传递,值传递:传值,实际是把实抄参的值赋值给行袭参,相当于copy。
  引用传递: 实际是传值的一种特殊方式,只是他传递的是地址,不是普通的赋值,那么传地址以后,实参和行参都指向同一个对百象,因此对形参的修改会影响到实参。

指针||数组&&函数

标签:sum函数   i++   class   使用   数值   ble   short   原型   数组名   

原文地址:https://www.cnblogs.com/sird-b/p/12809573.html


评论


亲,登录后才可以留言!