关于一个C语言的简单问题

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:42:09
#include<iostream.h>
void main()
{
char a[]="12345678";
char b[]="123";
cout<<a-b<<'\t';
cout<<b-a<<'\t';
}
得到答案是4 -4 请问是如何得到的

可见b[]分配在低地址,a[]在高地址,b[],a[]连续无间。所以b[]后四字节为a[]
指针减法如果不在一个数组/结构中是没意义的。

你做的是地址常量的相减,都是a移动b个长度,所以是4-4

别逗了
是-10 10
要么
char a[]="12345678";
char b[]="123";
反了

a,b都是分配的字符串常量指针
不同的环境,不同的编译器是不同的