#include stdio.h
创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为阿城企业提供专业的网站制作、网站设计,阿城网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
#include string.h
#include malloc.h
void niXuArr(char arr[]);
char * niXuPoint(char *p);
int main(void)
{
char arr[] = {"abcdefghigk"}, *p = "you are the first";
printf("逆序前:%s\n逆序后:", arr);
niXuArr(arr);
printf("%s\n", arr);
printf("逆序前:%s\n逆序后:", p);
p = niXuPoint(p);
printf("%s\n", p);
return 0;
}
void niXuArr(char arr[])
{
int i = 0;
char temp = 0;
for(i = 0; i strlen(arr) / 2; i++)
{
temp = arr[i];
arr[i] = arr[strlen(arr) - 1 - i];
arr[strlen(arr) - 1 - i] = temp;
}
}
char * niXuPoint(char *p)
{
char *pHead = NULL, *pTail = NULL, temp = 0;
int i = 0;
pHead = (char*)malloc(strlen(p));
pTail = p + strlen(p) - 1;
p = pHead;
for(i = 0; i strlen(p); i++)
{
*pHead++ = *pTail--;
}
*pHead = '\0';
return p;
}
不可能达到目的。因为C语言中没有引用这类型,C++才有。另,C/C++都不支持传递数组,只能传递数组的首元素或行指针,所以即使是C++,也只能传递数组指针的引用,而不可能传递数组的引用,因为数组没有引用。
在主函数里面,sizeof是数组占的空间
在作为参数时,会被转为指针
所以在函数里面打印的是sizeof(char*)
对于任意指针,sizeof的值都是当前编译器位数。你的是32位编译器,输出就是4
ps:4字节=32位