创意网站 案例 下载,国内企业网站设计公司,网页制作基础教程实验报告,个人域名备案网站名称例子目录 字符数组四例题1例题2例题3例题4例题5例题6例题7 结果字符数组五例题1例题2例题3例题4例题5例题6例题7结果字符数组六例题1例题2例题3例题4例题5例题6例题7 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 #x1f412;#x1f412;#x1f412;个… 目录 字符数组四例题1例题2例题3例题4例题5例题6例题7 结果字符数组五例题1例题2例题3例题4例题5例题6例题7结果字符数组六例题1例题2例题3例题4例题5例题6例题7 结果 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 个人主页 C语言 ️️️C语言例题 python 字符数组四
char arr[] abcdef;
1:printf(%d\n, strlen(arr));
2:printf(%d\n, strlen(arr0));
3:printf(%d\n, strlen(*arr));
4:printf(%d\n, strlen(arr[1]));
5:printf(%d\n, strlen(arr));
6:printf(%d\n, strlen(arr1));
7:printf(%d\n, strlen(arr[0]1));例题1
char arr[] abcdef;
printf(%d\n, strlen(arr));这里的arr是代表的整个字符串,由于字符串中的字符分别是’a’ ‘b’ ‘c’ ‘d’ ‘e’ ‘f’ ‘\0’,而strlen计算几个是除掉\0,因此结果为6
例题2
char arr[] abcdef;
printf(%d\n, strlen(arr0));arr0arr[0],arr[0]是第一个字符a的地址,因此strlen会从第一个字符a开始寻找\0,所以结果是6,因为数组的储存地址是连续的,所以先取寻找数组中的\0在哪,如果数组中没有\0,就会越界查找,知道找到\0
例题3
char arr[] abcdef;
printf(%d\n, strlen(*arr));*arr是对arr首元素地址进行解引用是字符a,并没有\0,所以会报错
例题4
char arr[] abcdef;
printf(%d\n, strlen(arr[1]));这里其实和例题3是一样的,arr[1]是字符b,没有\0,所以会报错
例题5
char arr[] abcdef;
printf(%d\n, strlen(arr));arr是取的整个数组的地址,也就是首元素地址,arr和arr[0]的不同在之前有讲过,这里就不说了,因此strlen会从第一个字符a查找,直到找到\0,结果是6
例题6
char arr[] abcdef;
printf(%d\n, strlen(arr1));arr1虽然是跳过了整个数组,但其实质仍然是一个数组地址,不知道\0在哪所以是一个随机值
例题7
char arr[] abcdef;
printf(%d\n, strlen(arr[0]1));arr[0]1arr[1],是从第二个字符’b’的地址开始向后找,因此结果就应该比从整个元素的地址开始向后找少一(因为b是在a之后),所以结果是5
结果
因为例题3和例题4无法打印,所以就打印的其他例题
字符数组五
char *p abcdef;
1:printf(%d\n, sizeof(p));
2:printf(%d\n, sizeof(p1));
3:printf(%d\n, sizeof(*p));
4:printf(%d\n, sizeof(p[0]));
5:printf(%d\n, sizeof(p));
6:printf(%d\n, sizeof(p1));
7:printf(%d\n, sizeof(p[0]1));例题1
char *p abcdef;
printf(%d\n, sizeof(p));p是一个指针变量储存的是字符串的地址,所以sizeof§是求一个地址的大小,结果是4或者8
例题2
char *p abcdef;
printf(%d\n, sizeof(p1));p1是跳过整个字符串的地址,但还是地址,所以结果仍然是4或者8
例题3
char *p abcdef;
printf(%d\n, sizeof(*p));这里的 * p是对字符串中的字符’a’地址解引用,所以 *p‘a’,由于字符是char类型,所以sizeof(*p)结果是1 调试结果如下
例题4
char *p abcdef;
printf(%d\n, sizeof(p[0]));p[0]是字符串中的第一个字符a,因为是char类型,所以结果是1
例题5
char *p abcdef;
printf(%d\n, sizeof(p));p是取出指针变量p的地址,因为是一个地址所以结果是4或者8
例题6
char *p abcdef;
printf(%d\n, sizeof(p1));p1仍然是一个地址,所以结果还是4或者8
例题7
char *p abcdef;
printf(%d\n, sizeof(p[0]1));p[0]1是取字符串第二个字符b的地址,所以结果为4或者8
结果 字符数组六
char *p abcdef;
1:printf(%d\n, strlen(p));
2:printf(%d\n, strlen(p1));
3:printf(%d\n, strlen(*p));
4:printf(%d\n, strlen(p[0]));
5:printf(%d\n, strlen(p));
6:printf(%d\n, strlen(p1));
7:printf(%d\n, strlen(p[0]1));例题1
char *p abcdef;
printf(%d\n, strlen(p));p是指针变量取的是字符串的地址,等于字符a的地址,strlen§就是从字符a开始寻找\0,所以结果为6
例题2
char *p abcdef;
printf(%d\n, strlen(p1));这里的p是数组首元素地址,p1是跳过数组的一个元素所以p1p[1],因此strlen是从字符’b’的地址开始寻找\0,所以结果是5
例题3
char *p abcdef;
printf(%d\n, strlen(*p));*p是对字符’a’地址解引用,就是字符a,没有\0所以会报错
例题4
char *p abcdef;
printf(%d\n, strlen(p[0]));p[0]是字符串中的第一个元素a,没有\0,所以会报错
例题5
char *p abcdef;
printf(%d\n, strlen(p));p是取指针变量的地址,注意p是字符串的地址,但是p就不是字符串的地址,所以p中我们不知道他的地址是什么样的,结果是一个随机值
例题6
char *p abcdef;
printf(%d\n, strlen(p1));p1是跳过p的地址,因为地址中不知道\0在哪,所以是一个随机值
例题7
char *p abcdef;
printf(%d\n, strlen(p[0]1));p[0]1p[1],是第二这个字符’b’的地址,因此strlen是从b开始寻找\0,所以结果是5
结果