长沙网站建设要多少钱,加工网袋的设备多少钱,沈阳企业做网站,山西品牌设计公司本练习的主题#xff1a;一个对象的指针可以修改这个对象的内容#xff1b;
注#xff1a;对象是指一个固定大小的内存块。
#define _CRT_SECURE_NO_WARNINGS
#include stdio.h
#include string.h
#include stdlib.h
int getMem(char **p1,int *m… 本练习的主题一个对象的指针可以修改这个对象的内容
注对象是指一个固定大小的内存块。
#define _CRT_SECURE_NO_WARNINGS
#include stdio.h
#include string.h
#include stdlib.h
int getMem(char **p1,int *mylen1,char **p2,int *len2)
{int ret 0;char *tmp1 (char *)malloc(100);strcpy(tmp1,aabbccdd);*mylen1 strlen(tmp1);*p1 tmp1;char *tmp2 (char *)malloc(100);strcpy(tmp2,1122334455);*len2 strlen(tmp2);*p2 tmp2;return ret;}int main(void)
{ char *p1 NULL;char *p2 NULL;int len1 0;int len2 0;getMem(p1,len1,p2,len2);printf(str1:%s,len 1:%d\n,p1,len1);printf(str2:%s,len 2:%d\n,p2,len2);if (p1 ! NULL){free(p1);p1 NULL;}if (p2 ! NULL){free(p2);p2 NULL;}return 0;
} 指针的例子2
int main(void)
{char from[128];//情况1也可以写成 char to[128] {0}; 数组的每个元素都定义为0了//情况2也可以写成 char to[128] {\0}; 数组的每个元素都初始化为\0了//情况2和情况1实际上是等价的即效果相同。效果就是每个字符都初始化为空字符\0了。char to[128];strcpy(from,112223345kjjnmasldf);char *p1 from;char *p2 to;while (*p1 ! \0){*p2 *p1; }*p2 \0;printf(%s,to);return 0;
}
注(1)\0按照字符打印也就是%c格式输出时候什么也不输出也就是空字符。
2\0按照整数打印“也就是printf中使用%d格式打印”格式输出是0因为空字符的ASCII码是0字符和整数的关系密切。千万要理解。
例如 char buf[100] {a,b,c,d};那么其余没定义的字符编译器全部定义为空字符了。
printf(%d,buf[80]);结果是1.
printf(%c,buf[80]);结果是什么也不显示也就是空字符。 看一个字符数组的例子
#include stdio.h
#include string.h
int main()
{char buf[100] {a,b,c,d};char buf1[100] abcd;printf(buf:%s,buf);if (buf[4] \0)printf(yes ,buf[4]是一个空字符.\n);elseprintf(No,buf[4]不是一个空字符.\n);if (buf[4] buf1[4]){printf(yes,buf[4] buf1[4],都是一个空字符\n);}int ret strcmp(buf,buf1);printf(ret 0?对于strcmpbuf和buf1是相等的:对于strcmpbuf和buf1是不相等的.\n);return 0;
}
运行结果 继续来个来个例子