#include<stdio.h>
int main()
{
//指针是一种类型,定义的指针变量可以保存变量地址
//定义方式 :类型* 变量名
//指针的关系运算符:1.&取地址符 获得变量的地址 一把锁
// 2.*取值符号 (有的地方叫解引用)获得指针指向的内存空间值 一把钥匙
//一把钥匙开一把锁
//指针的类型:
//1.指针指向的类型
//2.指针变量的类型
int sex = 666;
//定义了int类型的指针变量p,
int* p;
p = &sex; //把sex的地址赋值给指针变量,指针P指向了变量sex(指针存的谁的地址,指向了谁)
//输出指针
printf("%p %p\n", p, &sex); //00000098D110F934 00000098D110F934 64位系统
//根据指针存的地址找到指向的变量(间接使用变量)
printf("%d %d\n", sex, *p); //666 666
printf("%d\n", *&sex); //666
int num = 3;
//int* p = # //初始化
//*p=# //不能把地址赋值给一个整形 warning C4047:“=”:“int”与“int*”的间接级别不同
int* p1, p2, p3;//都是指针类型吗?只有p1是指针类型,p2,p3都是int类型(特别重要,编程时要特别注意)
//int* p1,*p2,*p3 //p1,p2,p3都是指针
double dd = 2.14;//8Byte
double* d = ⅆ//4Byet
//指针类型,32位4个字节,64位8字节
printf("%d\n", sizeof(double*));//4Byte(32位) 8Byte(64位)
printf("%d\n", sizeof(char*)); //4Byte(32位) 8Byte(64位)
//指针指向的类型:一般和声明指针的时候*前面类型一致
char* pstr = (char*)d;
printf("%c\n", *pstr); //
int ch = 65;
char* pc = &ch; //在C文件正确 ,在CPP文件出错 错误(活动) E0144 "int *" 类型的值不能用于初始化 "char *" 类型的实体
putchar(*pc); //A
return 0;
}
13.2 指针的定义和使用
最新推荐文章于 2024-01-15 11:52:16 发布