请问在C语言中这样的语句是否合法?

[复制链接]
查看11 | 回复3 | 2011-1-30 13:05:20 | 显示全部楼层 |阅读模式
*p=a 语法是没问题的,之所以说不合法是因为:给*p赋值时,必须先让p指向一个确定的可访问的地址如int *p; int x[10];p=x;//这个不能漏*p=a;这样就正确下面这个就是错误的:int *p; int x[10];*p=a;因为没有对p初始化,p指向的地址是不确定的,有可能是指向重要的不可访问的内存地址,系统怎么会允许你往这个地址写入数据呢??...
回复

使用道具 举报

千问 | 2011-1-30 13:05:20 | 显示全部楼层
int b;int *p=&b;*p=7;这样就可以。p指针必须初始化指向个地址。如果直接int *p;*p=7;编译可能通过,但一般用起来就内存错误...
回复

使用道具 举报

千问 | 2011-1-30 13:05:20 | 显示全部楼层
unsigned int *p;unsigned int a;*p=a;
//不合法unsigned int **p;unsigned int a;*p=a;
//合法*p=a;
//不合法...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行