找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 578|回复: 7
打印 上一主题 下一主题
收起左侧

C语言地址指针问题,请指导一下

[复制链接]
跳转到指定楼层
楼主
上面第一行 char的含义和第二行 char的含义是否相同。
将常量数组写入变量地址,正确的写法。

不会使用指针,代码不知道对错,请老师指导一下,谢谢


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1121801 发表于 2025-3-15 10:37 | 只看该作者
1,指针变量要与指向的变量类型相同,即char *p=&n;其中n必须是char n,不然执行程序时会强制转换为指针相同的类型,而且指针不能指向不同类型的变量。
2,我没看明白你用char定义那个for循环的i 是什么意思??char是定义一个字符的,你能用来定义 i 然后跑循环?
3,for循环中为什么一个指针变量++,一个是指针变量的值++?
回复

使用道具 举报

板凳
ID:624769 发表于 2025-3-15 13:25 | 只看该作者
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

unsigned char const front[]= {0,1,2,3,4,5,6,7,8,9};  
unsigned char code front[]= {0,1,2,3,4,5,6,7,8,9};  //不知道你什么编译器 二者选一

void main()
{
   unsigned char i;
   addr_point_0 = &data_array[0];
   addr_point_1 = &front[0];
   for(i = 0; i<10; i++)
   {
      *addr_point_0 = *addr_point_1;
      addr_point_0++;
      addr_point_1++;
   }
   while(1);
}
回复

使用道具 举报

地板
ID:73992 发表于 2025-3-15 13:25 来自触屏版 | 只看该作者
cyi8 发表于 2025-3-15 10:37
1,指针变量要与指向的变量类型相同,即char *p=&n;其中n必须是char n,不然执行程序时会强制转换为指针相 ...

for(i=0;i<10;i++){
  data_arry【i】= front 【i】;
}
看这样行不行,要是可以就不需要指针了
回复

使用道具 举报

5#
ID:73992 发表于 2025-3-15 20:10 来自触屏版 | 只看该作者
188610329 发表于 2025-3-15 13:25
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

谢谢!
回复

使用道具 举报

6#
ID:73992 发表于 2025-3-22 01:21 | 只看该作者
188610329 发表于 2025-3-15 13:25
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

请问, 下面代码。变量a越界,将unsigned char a;   换成unsigned int a;硬件运行没有达到想要的效果。因为无法软件仿真,编译器是arm gcc     
        unsigned char c;
        unsigned char a;
        for(unsigned char i=0; i<16; i++){
            for( unsigned char j=0; j<8; j++){
               data_array[a] = font[c];
                a ++;
                c ++;
            }
         a = a+220;
        }   
回复

使用道具 举报

7#
ID:73992 发表于 2025-3-22 10:57 | 只看该作者
lyonkon 发表于 2025-3-22 01:21
请问, 下面代码。变量a越界,将unsigned char a;   换成unsigned int a;硬件运行没有达到想要的效果。 ...

换成unsigned int a = 0;问题解决。
回复

使用道具 举报

8#
ID:74687 发表于 2025-3-22 14:34 | 只看该作者
好像可以用 while(*addr_point_0++ = *addr_point_1++);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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