数组与指针
数组整体的地址和数组首元素的地址是一样的
数组名就是数组首元素地址
数组指针的递增与递减
例(num++或num+1)
int i;
int score[5] = { 1 , 2 , 3 , 4 , 5};
int * ptr_score;
ptr_score = score;
for(i = 0 ; i < 5 ; i++)
{
printf("%d\n", * ptr_score++);
}
1.先算*通过指针得到数字,再++
2.数组是连续的空间,所以指针地址所加的是类型的字节数,即4
PS:地址一般占四个字节
sizeof(ptr_score) = 4
double * ptr_score;//也是四字节
二维数组与指针
int num[3][3] = {{1 ,2 , 3}
{4 , 5 ,6}
{7 , 8 , 9}
int i , j;
for(i = 0 ; i < 3 ; i++)
{
for(j = 0;j < 3 ; j++)
//三种方式输出数字
//printf("%d" , num [ i ] [ j ] );
//printf("%d" , * (num [ i ] + j ) );
//printf("%d" , * ( * ( num [ i ] ) + j ) );
如果 int * ptr_num = num;
则错误
应该是 int * ( ptr_num) [ 3 ] = num;
即把ptr_num也变成二维
函数
就像一个黑盒子,进去一个东西,通过黑盒子变成另一个东西
就是函数
包括内置函数和自定义函数
自定义函数可带参数也可不带参数,可返回值也可不带返回值