首页 > 编程知识 正文

c语言定义指针变量,指针和指针变量的区别

时间:2023-05-06 12:09:14 阅读:107531 作者:2818

原始标题:声明c语言指针变量

在c语言中,变量的地址往往由编译系统自动分配,对我们用户来说,我们不知道某个变量的具体地址。 因此,定义p,将通常的变量a的地址直接发送给指针变量p的是p=a的写法。

指针变量p的定义和初始化一般有两种方式。 这两种方式,初学者很容易混淆,所以这个地方没有别的办法。 请死记硬背记住。

方法1 :定义时直接进行初始化赋值。

unsigned char a;

unsigned char *p=a;

方法2 :定义后赋值。

unsigned char a;

无符号字符* p;

p=a;

仔细一看,就知道这两种写法的不同。 那些都是正确的。 在定义的指针变量之前添加了*。 此*p表示此p是指针变量,不是普通变量。 它专门用于存储变量的地址。 另外,在定义*p时,使用unsigned char进行了定义,这里表示该指针所指的变量类型为unsigned char型。

指针变量似乎很容易理解,大家也能很容易地听到。 但是为什么很多人不能理解指针呢? C语言有一些运算和定义,所以他们有区别。 很多同学如果不知道其中的区别,就不能很好地掌握指针。 这里重点强调两者的区别。 一旦理解了这两者的区别,至少指针变量这个部分就不是问题了。 这两个要点现在大家死记硬背,直接记住就可以了,有可能因为理解而混淆概念。

第一个重要差异:指针变量p和普通变量a之间的差异。

既可以定义变量a,同时将a=1代入变量a,也可以代入a=2。

我们定义了指针变量p,还定义了普通变量a=1,普通变量b=2。 然后,该指针变量既可以指向a的地址,也可以指向b的地址。 可以写p=a,也可以写p=b,但不能写p=1,也不能写p=2,也不能写p=a。 这三种表达都是错误的。

因此,在这个位置,定义*p时前面有unsigned char类型,不要看的赋值p=1。 这只能说明p指向的变量是此unsigned char类型,而p本身是指针变量,不能代入普通值或变量。 稍后将指针变量直接称为指针。 请注意这个细节。

前面的人好像很容易看出这个区别。 另外,还有第二个重要的区别。 请一定要记住。

第二个重要区别是定义了指针变量*p和值运算*p之间的差异。

“*”这个符号在我们的c语言中有三种用法。 最初的使用方法很简单。 乘法的操作使用这个符号,但这里不涉及。

第二种用法用于定义指针变量,如unsigned char *p。 这里使用“*”意味着p是指针变量,而不是普通变量。

第三种用法是,取值运算和定义指针变量是完全不同的。 例如:

unsigned char a=1;

无符号字符b=2;

无符号字符* p;

p=a;

b=*p;

这样两个阶段的运算结束后,b的值变为1。 在该代码中,a取得名为a的变量的地址,把该地址发送到p,然后取得指针变量p所指地址的变量值,再用*p运算表示把该值发送到b,最终的结果相当于b=a。 在同一个*p中,放在定义位置的是定义指针变量,放在执行代码的是取值运算。

这两个重要的区别,请大家重复读三四遍。 弄清楚这两个重要的区别,针门就能顺利地一只脚踩进去。 关于详细的使用方法,在我们之后多使用的话会渐渐习惯的。

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。