指针类型:
int *p; //定义了一个指针变量p,指针变量只能存储地址
//指针变量p前面的int:指针变量p只能指向int类型的数据
int *p; //定义了一个指针变量p,指针变量只能存储地址
//指针变量p前面的int:指针变量p只能指向int类型的数据
*p = 10; //指针能够找到对应的存储空间,并且可以修改
利用指针可以改变多个值
练习(用一个函数实现和差):
# include<stdio.h>
int SumAndMinus(int n1, int n2, int *n3);
int main()
{
int a = 10;
int b = 7;
int he;//存储和
int cha;//存储差
he = SumAndMinus(10, 7, &cha);
printf("和是%d\t差是%d\n", he, cha);
return 0;
}
int SumAndMinus(int n1, int n2, int *n3)
{
*n3 = n1 - n2;
return n1 + n2;
}
指针疑问:
char c; //1
int a; // 4
long b;// 8
char *cp;
int *ap;
long *bp;
printf("cp=%zd, ap=%zd, bp=%zd\n", sizeof(cp), sizeof(ap), sizeof(bp));
//任何指针,不管指向何种类型,都占用8个字节
int *p //从p地址开始取4个字节数据
char *c //从p地址开始取1个字节
前面的数据类型在取值和赋值的时候,确定在当前地址该取用多少个字节用来存储数据