• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

送分题:指针问题

dos 2016-12-15 浏览量:482

假如我声明一个一维数组int a[4]={0xff,0x00,0x11,0x22};

①我想通过指针的方式来修改a[0]的内容该怎么办?

②是这样么:*a[0]=0x11;(可是编译说,不能再非指针变量上放置*)

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 可參考這篇

    1.

    int x=0x11;
    *a= x;
    
    2. 不對喔,如上,假設要將第i個值賦值i

    int i;
    for(i=0;i<4;i++)
      *(a+i)=i;
    這樣a[0]=0x00,a[1]=0x01,and so on...

    但要注意51 int型別才是2個byte,其他32位元MCU是4個byte


    • 发布于 2016-12-15
    • 举报
    • 评论 4
    • 1
    • 0
MOP 回复了 MOP://www.icxbk.com/ask/detail?tid=2219 這篇是二維,也可參考 回复
dos 回复了 MOP:51int型只有一个byte吧? 回复
MOP 回复了 dos:兩個byte喔,1個byte是char,所以您上面可以改成char a[4]={0xff,0x00,0x11,0x22}; ^^ 回复
dos 回复了 MOP:又被你们打残血了,好吧我基础知识不够,被你们虐了。 回复

其他答案 数量:3
  • 重新定义一个指针变量,将a[0]的地址赋给它,

    int a[4]={0xff,0x00,0x11,0x22};​
    int *p=&a[0];
    *p=1;
    printf("%d",a[0]);
    或者
    int a[4]={0xff,0x00,0x11,0x22};​
    *a=1;//和*(a+0)相同,指向数组的第一个元素。
    printf("%d",a[0]);

    • 发布于2016-12-15
    • 举报
    • 评论 0
    • 1
    • 0

  • 順便給您C51 Compiler的Data type

    這都很基本喔,要掌握

    • 发布于2016-12-15
    • 举报
    • 评论 0
    • 1
    • 0

  • a已经是数组的指针了,要修改a[0],可以a[0]=0x11; 或 *a=0x11;
    • 发布于2016-12-15
    • 举报
    • 评论 0
    • 1
    • 0

相关问题

问题达人换一批

送分题:指针问题