stract函数两种写法为什么结果不同,strcpy函数两种写法为什么相同

匿名网友 |浏览939次
收藏|2019/03/10 13:29

满意回答

2019/03/10 13:36

你的每个程序的第二个都有3个错(基本的概念)1.c语言的字串只能用=初始化,不能直接用=赋值的2.字符串与字符是两个不同的概念3.数组下标从0开始,最大下标只能用定义的n-1char str2[20]="jkl"; //正确,它是初始化str2[20]="jkl"; //错(当然,语法上可能只是一个警告,但逻辑上大错了)你的原意是与初始化一样,给str2串赋值,但违反了第1条,C的字串是不能直接用=赋值的而实际上str2[20]表示了str2串的第20个成员,而它已是下标溢出了(第3条),因为str2只能用到str2[0]~str2[19],且str[20]它只是一个字符变量,只能放下一个字符(第2条)如char s[3];s[0]='1';s[1]='2';s[3]='\0'; //C字串以\0结束你相当于写成s[3]="xxx";那肯定不对了(下标溢出。结果“不可预见”)一定要注意,字串str2与字符str2[x]是不同的类型,前者可以放一个串,后者只能放一个字符

whoami1978

其他回答(0)
0人关注该问题
+1

 加载中...