发布网友 发布时间:2022-04-19 23:33
共5个回答
热心网友 时间:2023-07-17 03:32
就是你这个意思,这里指针相减,得到的是元素个数追答这里指针相减,得到的int的个数
top的地址为1008,base的地址为1000,则top-base=2 2个int单位(2*4字节=8字节)
这个就像int a[10],*p=a;
则p++后p指向了a[1],地址实际上也加了4个字节,但元素跨度就一个
这里指针减法也是一样的道理,得到的不是字节数,而是类型单位的个数
热心网友 时间:2023-07-17 03:33
先减后比较。这是运算符优先级问题。热心网友 时间:2023-07-17 03:33
你这个S是毛?自己定义的结构体么。。?热心网友 时间:2023-07-17 03:34
连续的内存地址中,地址相减,得到的是相差的个数。热心网友 时间:2023-07-17 03:35
s.top和s.base是两个指针,分别指向栈顶和栈底,它们相减的结果就是这个栈里还存放了几个元素。s.stacksize就是一开始设置的栈的容量(就是栈里可以放几个元素)。这样比较就表示如果栈里放的元素的数量大于栈的容量就表示栈满了。