标题: C语言地址指针问题,请指导一下 [打印本页]

作者: lyonkon    时间: 2025-3-14 20:26
标题: C语言地址指针问题,请指导一下
上面第一行 char的含义和第二行 char的含义是否相同。
将常量数组写入变量地址,正确的写法。

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



作者: cyi8    时间: 2025-3-15 10:37
1,指针变量要与指向的变量类型相同,即char *p=&n;其中n必须是char n,不然执行程序时会强制转换为指针相同的类型,而且指针不能指向不同类型的变量。
2,我没看明白你用char定义那个for循环的i 是什么意思??char是定义一个字符的,你能用来定义 i 然后跑循环?
3,for循环中为什么一个指针变量++,一个是指针变量的值++?
作者: 188610329    时间: 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);
}
作者: lyonkon    时间: 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】;
}
看这样行不行,要是可以就不需要指针了
作者: lyonkon    时间: 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;

谢谢!
作者: lyonkon    时间: 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;
        }   

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

换成unsigned int a = 0;问题解决。
作者: zyftank    时间: 2025-3-22 14:34
好像可以用 while(*addr_point_0++ = *addr_point_1++);




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1