数组指针与指针数组

数组指针是指向这个数组首地址的指针,指向对象是这个数组;
指针数组是存放一类指针的数组,这个数组的每个元素都是一个指针;
例子:
int a[10];
int* s;
s = a;//这里s就是一个数组指针,它的值就是数组a 的首地址;当然,如果a是一个整数,那s就是一个指向整型的指针;
int a;
int* s[5];
for(int i=0;i<5;i++)s[i]=a;
//这里s就是一个指针数组,它的每个元素都是整型变量a的地址

CPU的设计者才不管你在上面跑什么程序.他们只是按着他们的想法来设计.
而int的大小,至少在C/C++中,标准只说可以由实现者自己定义.至于要不要按机器的字长来设计那就是编译器设计者的喜好了.除非哪天标准改成int必须是机器的字长....不过C/C++标准中抽象出来的"机器",恐怕没有字长这个概念吧..

不管指针变量指向哪种类型的变量,占几个字节跟操作系统有关,操作系统如果是32位的,则指针变量占4个字节(32/4),如果是64位的则,占8个字节。 操作系统是几位的又跟硬件有关,如果处理器是32位的,操作系统最高也就32位。

指针使用前一定要初始化,而且如果一个结构体内含有指针,最好的初始化方式为
/* 栈的链式存储结构 */
typedef struct   StackNode
{
	struct  StackNode *next;
	SElemType data;
}StackNode,*LinkStackNodePtr;

typedef struct LinkStack
{
	LinkStackNodePtr top;
	int count;
}LinkStack ;

LinkStack ls;
SElemType e;
ls.top=NULL;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值