在c/c++语言里"[]"实际上是偏移操作符,p[0]的意思就是读取相对于地址p偏移了0个单位的地址里的数据,所以p[0],p[1]甚至p[-2]都可以 p[0]就是(p+0)就是p, p[1]就是(p+1),p[-2]就是(p-2);
至于cout<<p; 这是c++里<<重载后定义的:如果<<的参数是个char类型的地址,那就从这个地址开始读取内容直到碰到0为止,而不想其他类型的地址是输出地址本身,所以如果想输出一个char类型的地址,可以转换一下
比如 cout<<(int)p<<endl; //这样就输出地制值,而不是字符串内容了
第一个"p对应的字符是数字0~9"可以用下面语句来表示:
char p,a;
a=1;
p=&a;
现在p是一个指针,它所指向的是变量a,a的值为字符1,那么就应了第一句话;
第二个"p是数字字符0~9"也可以用下面的语句来表示:
char p;
p=1;
现在p是一个字符变量,也应了第二句话
p!=0的意思是
p≠0
一般用作判断语句中
例如if(p!=0)
return
1;
else
return
0;
当p=0是条件为假执行return
0;
当p≠0时条件为真
执行return
1;
p=!0的含义
!是
取反
的
逻辑运算符
!0
=
1
所以
p
=
1;
!x(x≠0)
=
0
可以推出
p
=
!1
=
!2
=
!3
=
!x
=
0;
NULL ,0,'\0',这几种写法一样,值都是0
在很多编译器中#define NULL 0这样宏定义的都是给p的值赋值0,'\0'就是0,不过是以字符的形式,
因此他们是相同的
有p=NULL,p = 0,p = '\0‘,这样的写法,不过他们的意思是说,给p这个指针指向的空间赋值为0
但是,不要先把p赋值为0,然后这样写,因为大多数编译器规定,内存为0的地方不能写操作,这是为了保护这个内存空间,因此只要不写在一块,都可以
这样写:
file1c
#include<stdioh>
void main()
{
int p = &i;
p = NULL;
p = 0;
p = '\0'
}
file2c
#include<stdioh>
void main()
{
int i = 23;
int p = &i;
p = NULL;
p = 0;
p = '\0';
}
生死线上拉下来的病人,而一谈及他的家人,他便潸然泪下,他的妻子和女儿全部都压在他面前的废墟中这是何等的割舍,何等的爱呀!一名十二岁的小男孩,在从废墟中逃出来后,年幼的他失去挚爱的双亲,只有一个妹妹与他相依为命,为了不让妹妹受到伤害,他竟然背着妹妹走了十二个小时,几十里的山路,十二岁,一个本应该在父母怀里撒娇的年龄,却因为一次灾难而过早的成熟,他,心中有着何等的关怀,何等的爱呀!他,还有他,都是伟大的,都在无时无刻的诠释着爱的伟大
大爱无边,只要每个人都奉献出一点爱,那么世间就会春意盎然
警笛声还在响着,可是不觉得的刺耳了,那警笛声仿佛是对不幸遇难者的哀悼;爱,还在传递着,可是不觉得世间凉了,世间仿佛到了春暖花开的季节爱的大地洒满了阳光,每个人心中都有一个爱的天堂,在那爱的天堂中——大爱无边!
欢迎分享,转载请注明来源:浪漫分享网
评论列表(0条)