main()
{
char *ps="this is a book";
int n=10;
ps=ps+n ;
printf("%s\n",ps);
}
最后输出结果竟然是book
这个让我不明白
ps(赋值以后依然是指针变量 还是字符串的首地址 ) 可是以字符串的形式输出以后竟然是原来字符串book 应该是地址转换为字符串怎么还是book 这到底是不是地址转换成字符串的表现
如果是 那请高手告诉我是如何转换的
我看了大家的回答
我想是我问得不清楚
我是好奇
字符串指针变量(字符串的首地址) 以字符串形式输出以后为什么会和 字符串指针变量的内容是一样的
关于字符串和指针的问题
D。C语言不支持在声明多个变量的同时,在一个句子中连续用=来初始化的这种形式。24。B A错。“ABCDE”加上隐藏的结束符,需要char s[6]才能放得下 C错。s指向的是常量字符串,不能赋值 D错。s未初始化,指向的是未知空间 27。C A错。s是数组,p是指针,虽然在使用上没差别,但毕竟是两个...
C语言里为什么字符指针变量指向的字符串常量中的内容是不可取代的?
指向字符串常量的话,这段常量字符串是存储在静态存储区的,内容不能修改。当然你可以让指针指到别的地方
C语言问题:指针变量,数组名,字符串常量的区别。
指针变量p中的内容是: s[0]的地址(&s[0])一个是字符串 一个是地址 不一样 (C)s数组长度和p所指向的字符串长度相等 s数组长度包括 '\\0'的位置 p所指向的字符串长度不包括 '\\0'的位置 s数组长度 == p所指向的字符串长度 + 1 (1就是'\\0'占有的位置)显然 不相等 ...
C语言中字符指针的问题 char *pointer = "Hello World!"; printf...
回答:这里的 pointer 指向的是一个字符串,字符串的首地址赋给 pointer printf("%s\\n",pointer); \/\/输出Hello World!\/\/ printf 遇到指向字符串的指 \/\/针时,输出字符串(就是这样定义的) printf("%s\\n",*pointer); \/\/输出H printf("%d\\n",pointer); \/\/输出pointer指向的地址
C语言中的指针问题到底是怎么回事~
指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的加减运算的意义是不一样的。例如: 例二: 1。 char a[20]; 2。 int *ptr=a; ... ... 3。 ptr++; 在上例中,指针ptr的类型是int*,它指向的类型是int,它被初始化为指向整形变量a。接下来的第3句中,指针ptr被加了1,编译器是这样...
C语言字符型变量的问题
正确答案C,分析:A,绝对错误,c只能容纳一个 字符 ,'97'这是一种语法错误,没有这种 写法 B,错误,c只是一个 字符变量 ,不能容纳一个 字符串 指针 的地址 D,错误同B C,你可以理解为将 数值 97转换为ASCII对应为97的字符'a'然后赋值给c ...
C语言指针变量问题
C语言里面的指针和数组是很有趣的。例如定义数组a[10],你可以通过a[1]访问里面的元素,也可以通过*(a+1),来访问。为什么这里可以这样用呢?ptr的类型为(int *),所以ptr在内存里面存放的就是int类型的指针,指向了某个int地址。正常情况下,你可以通过ptr访问它指向的某一个地址里面的数据,如...
关于C语言中,指针变量与char int double等变量分配内存的问题??
指针:一类类型的统称。指针类型的实例是表达式,可能是一个对象。有时候把指针对象简称为指针,注意不要混淆。左值和右值:表达式中的左值具有对象语义,而右值没有。通俗点说左值可以出现在赋值操作符=的左边,而右值不可以(C语言中右值可以简单地理解成值)。&操作符作用于一个左值,获得一个右值指针...
C语言中变量指针输出问题
假设字符串"this is a book"的地址分布如下:值 地址 t 0030F8B0 h 0030F8B1 i 0030F8B2 ... ...此时有char *ps="this is a book"; 由于ps是char类型指针变量,它的指针域只能保存地址,我们知道"this is a book"是一个字符串数组且拿到了首元素的地址就可以找到它整个字...
c语言中,为什么不能对字符指针变量指向的字符串再赋值?
因为C语言中,凡是以""括住的形式直接出现,而且你又没有为其分配内存空间的字符串都是常量字符串,是不能修改其值的。这样:char a[6]="hello";a[2]='c';就可以了。这里你为hello分配了一个长度为6的字符数组空间来存放。