目录
指针
1、指针所占内存大小
数据的地址和数据本身没有任何关系,由于指针是间接寻址,所以猜测所有类型的指针大小相同
指针大小是由当前CPU运行模式的寻址位数决定,是固定的。
证实如下:
pointer.c
#include<stdio.h>
#include<stdbool.h>//在C99标准里面,定义了bool类型变量。引入头文件 <stdbool.h>,就能在C语言里面正常使用bool类型
int main(){
char* char_ptr=NULL;
int* int_ptr=NULL;
float* float_ptr=NULL;
double* double_ptr=NULL;
void* void_ptr=NULL;
bool* bool_ptr=NULL;
printf("The size of char_ptr is %d\n",sizeof(char_ptr));
printf("The size of int_ptr is %d\n",sizeof(int_ptr));
printf("The size of float_ptr is %d\n",sizeof(float_ptr));
printf("The size of double_ptr is %d\n",sizeof(double_ptr));
printf("The size of void_ptr is %d\n",sizeof(void_ptr));
printf("The size of bool_ptr is %d\n",sizeof(bool_ptr));
}
运行结果:
The size of char_ptr is 4
The size of int_ptr is 4
The size of float_ptr is 4
The size of double_ptr is 4
The size of void_ptr is 4
The size of bool_ptr is 4
2、*
和 &
*
:间接访问
&
:取地址
例子:
#include<stdio.h>
int main(){
int *a=NULL;
int b=10;
printf("The address of a is %d\n",&a);
printf("The address of b is %d\n",&b);
a=&b;
printf("The value of a is %d\n",a);
*a