www.xzhc.net > ChAr *str[] = { "hEllo" }; ChAr *p; p = str[0];

ChAr *str[] = { "hEllo" }; ChAr *p; p = str[0];

楼上的解释是对的,给你举个例子吧把你的程序稍作修改 char *str[] = { "hello","world"}; char *p; p = str[0]; 那么cout<<str[1];输出的结果将是world,实际上你可以把*str[n]看成是一个二维数组。而指针p所指向的是第一个字符串的首地址,...

没有区别。没有为什么,就是因为char *p = str和 char *p; p = str;是等价的。

B.5是正确的。 char *p=str[0];中char *p说明p是个字符型指针,每加1前进1个字节;而 str[0]是二维字符数组第一行的首地址,就如char a[X]中的a一样。你声明的二维数组第二维长度是10,那么p+10就指向了字符“w",从"w"开始,用strlen计算的刚好...

sizeof(str)=6 str是数组,sizeof得到的是它的内存空间大小,hello串有一个结束符,共6位 sizeof(p)=4 p是指针,所有的指针都占四字节

应根据编译器对各类型决定了,以下为32位机标准的结果 char str[ ]= ”Hello”; char *p=str; int n=10; sizeof(str)=( 6 ) sizeofchar str[ ]= ”Hello”;/*有误吧,应该重复了吧*/ char *p=str; int n=10; sizeof(str)=( 6 )/*求总共的字节数,不...

先给你贴代码吧 ,见代码分析 #include #include//没有此行,编译有警告,因为你用到了“strlen”函数,那是包含在此头文件内的,当然,只是警告而已,没有也行,系统会自动调用该文件的 void main() { char str[][20]={"Hello","Beijing"};//你这...

p 的类型是 char * str的类型是 char [],即char [6] sizeof是判断类型大小,指针的大小在32位机上是4

1、因为 ‘ H‘为两个字节,空格也算一个字符,一个字节内存单元存两个字节数据,会崩溃。 2、通俗点讲, 这是char 型指针,它指向的数据类型为字符类型,一个字符占一个字节,而数据的最小存储单位为字节,p加1,内存地址的偏移量为1,P[0]指向的...

"Hello world"作为静态字符串实际上存储在数据区,但写程序的人不知道这个地址,而程序本身知道。当某一函数以 { char p[] = "Hello world"; ...} 方式使用此静态字符串时,实际上相当于: char p[12]; strcpy(p, "Hello world"); .... p[12]是...

虽然能输出hello,但不能正常运行,因为char a只能存1个字符,存"hello"会抛异常

网站地图

All rights reserved Powered by www.xzhc.net

copyright ©right 2010-2021。
www.xzhc.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com