手机打字没有代码编辑模块么。。。知乎出来挨打()
int *p;
这个并不是定义一个「*p」的意思。起初我觉得这个语法很奇怪,不过就是这样的,*符号只是为了标注「p是一个指针」。
而在其他语句中*的含义就确实是指取「指针所指的东西」。比如:
int a=1;
int *p=&a;
printf("%d",*p);
运行结果就是输出1。
int *p=(int*) 40000;
(类型)是一个强制类型转换符。这句话的意思是把int型常量40000强制转换为int*型常量,然后赋予指针p。
至于sizeof(T*),这个式子的值就是类型T*的字长。T*类型相当于一个地址的代号,所以与T是什么无关。每个指针p的字长都是sizeof(T*),占用的空间当然都是4个字节。
1.建议精简问题描述,否则许多潜在回答者会失去耐心。我不是大佬,但是我知道许多大佬都是有自己的脾气的。
2.不要死读书。
int *p与int* p没有区别。
运行结果