新闻  |   论坛  |   博客  |   在线研讨会
MPLAB C18学习 指向字符串的指针
0750long | 2009-07-25 11:21:52    阅读:1806   发布文章

MPLAB C18学习 指向字符串的指针

 

 

unsigned char * p = "EDNChina";

这样表达,p不知指向了何处;

unsigned char p[] = "EDNChina";

这样就没问题了。

unsigned char String[] = "EDNChina";
unsigned char *p = String;

这样也没问题。

这是为何?

 


 

可能原因,C18把常量字符串全部储存在程序内存区,默认的指针是指向数据储存器的,和指向程序存储器的不兼容。测试程序:

#include <stdio.h>

#pragma config WDT = OFF

void main(void)
{
    unsigned char *p1 = "1";
    rom unsigned char *p2 = "2";
    printf("aa %c \n", *p1);
    printf("bb %c \n", *p2);
    while(1);
}

结果:

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客