找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

请问一下我这个C语言程序,这里的指针错了吗?怎么这样?

查看数: 968 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-8 19:44

正文摘要:

#include<reg51.h> sbit s1 = P3^2; sbit s2 = P3^3; void delay(unsigned int n) {         while(n--); } void yanshi(unsigned char a) {      ...

回复

ID:858214 发表于 2020-12-10 16:59
改成*h=*h<<1
ID:517466 发表于 2020-12-10 10:43
非指针变量,变量里面装的是值
指针变量,里面装的地址
uchar c=1 : 表示c这个单元里装的是uchar数据。&c 表示获得c这个单元所在的地址。
uchar *c  :表示c这个单元里装是一个地址,这个地址里装的是一个uchar数据。*c就是取得这个uchar数据;而直接使用c,得到的是一个地址;
ID:833190 发表于 2020-12-9 15:25
定义了指针h,但是后面没有用到这程序也用不到指针,直接对变量c进行操作就行,把*c=*c<<1改成
c=c<<1。如果是想练一下指针,那就改成*h=*h<<1。
ID:764088 发表于 2020-12-9 08:39
unsigned char c = 0x01;//c 是字符,不是指针
unsigned char *h; //h
h = &c; // h是指针,将字符 地址赋给指针是可以的
*c = *c<<1; //c 不是指针, 改为 :*h = (*h) << 1; 是可以的

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表