#include<stdio.h> int main() { char p[4]={'a','b','c'},b[3]="abc"; printf("

#include<stdio.h>
int main()
{
char p[3]={'a','b','c'},b[4]="abc";
printf("%s,%s\n",p,b);
}
请问这个程序,用sizeof调出来的结果是3,4,但是必须都要把长度定为4才可以准确输出abc,我想问的是\0这个是在p和b的数组里都会由系统自动添加吗,哪一个的数据内容必须必场长度少1,还是都要?

要理解二个概念,一个是sizeof这是内存大小, strlen 字符串长度。

系统会给字符串自动加0.所以数据大小就是+1.
也就是算。
sizeof >= strlen+1
温馨提示:内容为网友见解,仅供参考

...int main() { char p[4]={'a','b','c'},b[3]="abc"; printf("_百度...
要理解二个概念,一个是sizeof这是内存大小, strlen 字符串长度。系统会给字符串自动加0.所以数据大小就是+1.也就是算。sizeof >= strlen+1

...string.h" int main() { char p[]={"a","b","c"},q[10]={"a...
首先清楚:strlen函数是遇到结束符'\\0'才终止的。问题出在:char p[]={'a','b','c'},p[]你没指定长度,系统就不知道,默认也为无限长(可以验证:你输入p[16]都还可以看到有输出,因为你没指定p[16],所以这个输出是系统随机给的),这时你调用strlen函数来求“长度未知”的字符串,strlen...

#include<stdio.h> #include<string.h> void main() { char ch[]="a...
当i==0时,输出x[0][0]的地址所在的字符串,明显是abc;当i==1时,输出x[1][1]的地址所在的字符串,所以跳过a,从b开始输出,即bc;当i==2时,输出x[2][2]的地址所在的字符串,所以跳过ab,从c开始输出,即c;

#include<stdio.h> void main() {char p[]={'a','b','c'},q[10]={...
因为strlen是用来计算字符串长度的,也就是说读到 '\\0' 才计算长度,由于 p[] 的长度是未知的,因此strlen出来的结果也是未知的,而 q[] 在最后自动帮你补了个 '\\0',因此读出来是3

#include<stdio.h> void main() { char a='本金',b='年数',c='年利率...
main() {int x ;printf(“%d\\n”,(x=4*5,x*2,x+20));}A)20B)40C)60D)809.执行以下程序后的输出结果是( )。#include "stdio.h"void main(){int i = 0, j = 0, a = 6;if ((++i0)||(++j0)) a ++;printf("i=%d, j=%d, a=%d\\n", i, j, a);}A)i=0, j=0, a=...

#include<stdio.h> #include<string.h> main() {char a[20]="ABCD\\O...
你如果确信你的数据是"ABCD\\OEFG\\0" D后是\\O(字母O,而不是0)则你的程序运行结果是: ABCDOEFGIJK 如果你的数据是:"ABCD\\0EFG\\0" D后是\\0(数字0)则你的程序运行结果是: ABCDIJK strcat时是从第一个地址位置开始,先找到\\0位置,然后将第二个指针所指的内容连到其后。

#include<stdio.h> int main() { char a; scanf("%c",&a); printf...
include<stdio.h> \/\/包含库文件stdio.h 以便使用函数scanf,printf int main() \/\/定义main函数,返回类型为int { char a; \/\/定义字符型变量a scanf("%c",&a); \/\/输入一个字符,将其存入变量a中 printf("%d",a); \/\/输出变量a的整型值 (因为在内存中,字符也是以数字形式存在,此时...

...<string.h> #include <stdio.h> main() { char p[20]={'a','b...
include <stdio.h> include <string.h> main( ){ char p[20]={‘a’,’b’,’c’,’d’},q[]=”abc”,r[ ]=”abcde”;strcpy(p+strlen(q),r);strcat(p,q);printf(“%d %d\\n”,sizeof(p),strlen(p));} 程序运行后的输出结果是( C )。A)20 9 B) 9 9 ...

#include<stdio.h> int main() { char x='a',y='A'; printf("%c\\n...
(x,y)括号里面是一个逗号表达式,而逗号表达式的特点就是最后一个参数有效。也就是说计算逗号表达式的时候会从第一个参数算起,算完第一个然后计算第二个,一直到最后一个参数,最后一个参数的值就是整个逗号表达式的值。

...{p+=3;} void main() { char b[4]={'a','b','c','d'},*p=b; po...
point函数的功能:使传入的指针偏移三个单位。当你在main函数中调用point函数,将p指针的值传给point函数进行偏移。在程序运行中当执行一个函数时都是开辟一段空间让函数执行,当执行完毕之后程序就会收回这段空间。所以说当你执行完point之后程序就收回了空间,所以在point函数中的p的值增加了3.但是当...

相似回答