p是一个字符型指针,给p赋“see you tomorrow”然后p=p+7,为什么输出p为tomorrow?

作者&投稿:曲宁 (若有异议请与网页底部的电邮联系)
See you tomorrow. 是什么意思?~

See you tomorrow指的是金针菇,因为它无法被胃液消化。

SEE YOU !

起初给p赋"see you tomorrow”实际是赋给它这个字符串的首地址
而p=p+7则为将字符串的下标为7的元素地址赋给p
输出p 等价于输出以p所指向的地址开始的字符串元素..故输出"tomorrow"

p本来是第一个字符"s"的地址,
p增加7,p就是第7个字符的地址了,
用p当字符串,就是"tomorrow"了。
完全正确


字符型指针占四个字节,为什么第二行的输出结果是1呢?
ps 指向的是字符串的第一个字母。输出的是char大小 fun(str)输出的才是指向字符的指针大小。

char *p="girl"的含义是定义字符型指针变量p,p的值是字符串“girl”,对...
不对的,p的值应该是girl字符串的首地址。p是指针,他的类型是char型,指向常字符串girl,*p的值是girl,p的值是girl字符串的首地址。字符指针也可以指向一个字符串,可以用字符串常量对字符指针进行初始化。例如:char *str = "hello" ;这是对字符指针进行初始化。此时,字符指针指向一个字符串...

C语言选择题,求详解
选项A是正确的。解释如下:p是字符串指针,它是一个变量,可以被赋值,指向新的地址。a[5]是一个字符串,a指向这个字符串的首地址,而且它是一个常量,除了初始化的时候能赋值之外,不能再被赋值了。p是取到指针p的地址的值,*a是取得字符数组a[5]的首地址的值,这两个都是int型,后面的字符...

C语言中,字符串实际上是指向字符序列中第一个字符的指针,因此字符传数 ...
这半部分理解了吧?再看上面那句话,“字符串实际上是指向字符序列中第一个字符的指针”还是上面那个例子:str指向字符串的内容是一个这样的序列“abcd”字符串是一序列的字符,加上一个‘\\0’的结束符;而让str指向一个字符串,其实是让str这个字符型指针指向字符序列中的第一个字符;这也就是说第...

下面的选项中正确的赋值语句是(char a[5],*p=a;)()。 A p=“abcd...
答案是a 主要考核你对变量赋值时的对等关系;a p=“abcd”;p是字符型指针,将“abcd”的地址给了p,也就是p指向“abcd"的首地址,也就是 指向‘a'的地址;b a=“abcd”;a是字符数组的地址,不可赋值;c p=“abcd”;p是字符,不能将字符串赋给它,若是*p='a',则正确。

c语言中,字符数组的首地址字符指针的地址也是第一个字符的地址吗?为什 ...
字符指针是指向字符类型的指针。字符指针并没有地址,当定义一个字符指针变量后,这个变量便有了自己的地址,字符指针变量同时保存着某个地址,这个地址也可以指向单个字符元素,也可以指向字符串。如:char a;a=getchar();char *p;\/\/变量p本身有一个地址.p=&a;\/\/p保存了变量a的地址,也就是说p...

字符型数据是指字符串
3、字符型数据是不具计算能力的文字数据类型,用字母表示。它包括中文字符、英文字符、数字字符和其他字符,其长度,即字符个数,范围是0至254个字符。字符数据以代码存储,它的存储形式就和整数的存储形式类似。4、字符型数据定义的格式是:字符型数据是用单引号括起来的一个字符。如a、b、=、+、?

c语言中char表示什么
C的运算符包含的范围很广泛,共有种34个运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来...

一个C语言中指针型字符数组的问题
char*message2 = “hello”; \/\/2式 两个hello有什么不同呢? 用于初始化一个字符数组时,它就是一个初始化列表。例如1式。在其他地方时,它都表示一个字符串常量。例如2式。这两个初始化有不同的含义。前者初始化一个字符数组的元素,而后者是一个真正的字符串常量。这个指针变量被初始化为...

C语言中strcpy函数的第一个参数不能是字符指针吗?
strcpy(string1,string2);是把第二个字符串写到第一个字符串的地址上,从而代替第一个字符串,实现字符串复制的作用。这就要求第一个字符串string1是能够改写的!我们看一看你定义的第一个字符串char *p="1234567";,这个语句首先建立一个字符指针p,再在常量区建立一个字符串“1234567”(注意常量...

庄浪县18832363385: p是一个字符型指针,给p赋“see you tomorrow”然后p=p+7,为什么输出p为tomorrow? -
花宋卡波: p本来是第一个字符"s"的地址,p增加7,p就是第7个字符的地址了,用p当字符串,就是"tomorrow"了.完全正确

庄浪县18832363385: . 假定p是具有int**类型的指针变量,则给p赋值的正确语句为( B ). A. p=new int; B. p=new int*; C. p=
花宋卡波: 你是学习C语言指针吧,首先,int p 则p是一个变量,这你是知道的,int *p 则p 是一个指针,int **p 则这是一个指向指针的指针.、A选项:得到一个变量的地址.B:得到一个指针变量的地址 ,这正好是一个指向指针的变量.C 都不知道是什么意思了.D 得到一个指向一个数组的指针;

庄浪县18832363385: 在C语言中,P为一个指针变量,那*P出现在赋值号右边和左边的定义分别是什么啊? -
花宋卡波: 例如: int i = 0; int *p = &i; int j = *p; // *p出现在右边 *p = 2; // *p出现在左边 这正是rvalue和lvalue的区别 *p出现在右边是右值,表示p指向的int型变量的值 *p出现在左边是左值,表示p指向int型变量的内存空间,可以将等号右边的值赋给这一内存空间

庄浪县18832363385: C语言中p是一字符串指针,while(*p)与while(*p!='\0')有什么区别 -
花宋卡波: 没有区别,*p代表一个字符 在C语言里,'\0'就等同于0 这几种形式都是等效的 while(*p) while(*p!='\0') while(*p!=0)

庄浪县18832363385: char *p=“name"; 这一定义中p是怎么理解的?是字符串,还是字符指针?p的值又怎么解释? 求解 -
花宋卡波: char *p=“name"; 这一定义中p是一个字符指针,指向串的起始地址.

庄浪县18832363385: 怎么给一个指针赋值? -
花宋卡波: 比如开辟一个空间:char *p = (char *)malloc(10),那么可以这样赋值 1、strcpy(p,"hello"); 2、数组形式赋值.p[0] = 'a';p[1] = 'b'; 3、指针形式赋值. *p = 'a'; p++; p = 'b'; 4、memset(p , 'a' ,10);将内存空间全部初始化为字符'a'

庄浪县18832363385: C语言给字符串赋值的时候 char *p;p="ABC"; char p[5]; p="ABC" -
花宋卡波: 前者合法. 如为 char p[5];则在表达式中使用时,p是一个常量指针,不能给它赋值,只能在它定义时进行初始化. "ABC"是一个字符串常量,在表达式中使用时,它也是一个指向字符的常量指针.但 char p[]="ABC"; 是可以的,这时可以自动判断字符数组p的长度为多少

庄浪县18832363385: c语言里:p是指针变量,那应该将p=地址,char a[5],*p=a;p='abcd',为什么字 -
花宋卡波: char a[5],*p = a;没有问题,把字符数组地址赋值给p 'abcd' 不是字符串,"abcd"才是字符串,而且是常量 'abcd'其实相当于0x61626364,把这个值赋值给变量p

庄浪县18832363385: c++中可以输入一个字符串赋给指针吗 -
花宋卡波: 不行,p只是一个指针,char*senter; 这一句,指针本身分配空间了,但是指针指向的空间并没有分配空间.因此肯定不行了.不过,如果你在定义时 char *senter="abcd";这样来写的话那么两个空间都分配了.

庄浪县18832363385: 在C语言中,关于字符型指针初始化char *p="hello world" 的问题 -
花宋卡波: 对于字符串常量,编译器都是默认按其大小分配内存存放字符串,并把地址首地址赋值指针变量. 如: char *p="hello world"; 其实编译的时候等于: const char str[] = "hello world"; char *p = str; 只不过这个 str 数组名你没法直接拿来用而已.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网