C语言 char *p=s
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/10 01:04:23
表达式中p应该是个指针,指向一个数组,如a[10]数组a的首地址传输给指针p,*(p+i)就是数组的第i个元素a[i].表达式“s*=”就是s=s*()于是,该表达式即为s=s*(*(p+i))也就是
#include <stdio.h>#include <string.h>//冒泡排序void sort1(char *s[],int&
p是char型指针,必须指向char型变量,s是char型数组,k是char型指针数组,s[0]是char型变量,所以A,B都错了,C是对的,k是char型指针数组,当其单独使用时表示首地址即此数组中
p=s//s是二维数组的首地址,类似**s,而p是一维指针,不正确p=k//k是一个指向3个char类型数组的指针,类型不同p=s[0];//这个是正确的.s[0]是s第一维数组的首地址,类似char
应该是这样吧chars[]="\t\chinese\\girl\n";printf("%d",strlen(s));长度是15个其中\t\n当做转义字符一个字节另外一个\包括\c\空格\g会当做非法转
p是地址,在32位计算机中占4个字节sizeof(str)是6个字节
q可以当成是字符串,但p不是字符串作为字符串,q的长度是已知的,p的长度是未知的作为数组,q包含7个字符,p包含6个字符可以用sizeof得到两个数组的大小计算字符串长度不把'\0'计算在内所以q,p
As是数组名,是不可修改的左值,不可作为赋值运算符的左参数
这个就是看运算符优先级,++运算符最高,接着是*运算符,接着是=运算符.++是后置运算,先不管,*是对指针指向地址取内容,所以就是右边p指针指向的内容赋值到左边s指针指向的内容,这个赋值操作完成后,+
*(p+1)的值是b步骤:s是个char数组,所以s[0]="a",s[1]="b",s[2]="\0";p是指针,它指向s的首地址.所以*(p+1)就相当于是去拿s[1]的值.所以是"b"
,dchar*p=(char*)(&a+1);把a当成一个数据结构4个字节,所以p是在'd'后面的一个字节位置再问:*p=(char*)(&a+1)char*p=(char*)(&a+1);他们分别是
def,def缺少个#include另外用完后把malloc的内存释放掉程序首先申请了20个字节大小的堆内存,用指针p指向它然后再用指针q指向它接着输入两个字符串填到p和q所指向的内存最后打出p和q指
结果是6f(char*s)是一个检查字符串长度的函数首先取得字符串开头位置的指针s令p=s令p递增直到p指向的位置为'\0'(字符串结尾的标志)然后返回p-s即字符串长度主函数中检查了"ABCDEF"
没有0结束符的不是串,题中y数组内容就不是串,只是个数组而已x是数组x的内容同时也是串(系统自动添加了0结束符)y是数组但y的内容不是串即然不是串也就不存在串长的说法说法正确的只有B,不过那考试题如果
因为你传递的是指针p的形参,也就是说不是真正的p,所以在函数体内的操作,对函数外不会造成任何影响.要想有所实现,可以做如下修改:voidpoint(char**pt);main(){charb[4]=
intGettext(chartext[],chars[][])可以改为intGettext(chartext[],chars[][100])再问:非常感谢,真的的可以。能麻烦您解释一下吗,这涉及到什
定义chars[20]之后,s就固定了代表数组第一个元素的地址是个常量,不可以将一个值赋给常量比如3=3+5把3+5赋值给3可以吗
*p=s,将数组的首地址赋给p,p+2等同于s+2,p[2]则等同于*(p+2),C语言里,编译器会将指针操作转化为下标操作,如*(s+2)会被转化为s[2]运算
首先说指针数组和数组指针.数组指针char(*k)[3];数组指针chars[3][10]*(p[3])p[3]存储的都是char*指针.p*是普通的char指针所以p=s[0]正确再问:我没看懂你想
表示s和*(p+j)所指的数据相乘.*(p+j)是一个指针.