C语言一般变量和指针变量的区别(尽量简洁)

1.一般变量

一般变量,其值存放在地址中,被使用时直接被取值。

int a=3,temp;
temp=a;//直接被取值
printf("a=%d\t temp=%d\n",a,temp);
printf("&a=0x%x\t &temp=0x%x",&a,&temp);//(暂时忽略)

其运行结果为:

C语言一般变量和指针变量的区别(尽量简洁)_第1张图片

可见,系统分别为a和temp这两个变量分配了不同的地址。

2.指针变量

指针变量用于取一般变量的地址,但其本身也有自己的地址。

int a=3,*p;

//&取地址符号
p = &a; 
printf("a=%d\t\n",a); 
printf("p=0x%x,&a=0x%x\t\n",p,&a);

//①指针变量本身也被分配了地址
//②指针变量加*等价于直接被地址中的取值
printf("&p=0x%x,*p=%d",&p,*p);

运行结果为:

C语言一般变量和指针变量的区别(尽量简洁)_第2张图片

可见,指针变量用于取地址(指针变量p取了一般变量a的地址),但自身也有地址。注意&和*这两个符号的用法。

综上所述,指针变量变化的是地址,一般变量变化的则是值(常量)。

你可能感兴趣的:(笔记,学习,c语言)