字符串问题
#include <stdio.h>#include <string.h>
int main()
{
//printf("请输入一个字符串:");
char str;
//fgets(str,1024,stdin);
str="abcczxbvc";
//scanf("%s",str);
printf("%c",2);
return 0;
}
有警告,并且打印的不对。
字符串只能定义的同时进行初始化吗 #include <stdio.h>
#include <string.h>
int main()
{
//printf("请输入一个字符串:");
char str;
//fgets(str,1024,stdin);
//str="abcczxbvc";
strcpy(str, "abcd1234");
//scanf("%s",str);
printf("%c",2);
return 0;
}
人造人 发表于 2021-5-28 20:56
printf("%c",2);
这里的2是神马鬼 wp231957 发表于 2021-5-28 21:01
printf("%c",2);
这里的2是神马鬼
str 就是 *(str + 2)
*(str + 2) 和 *(2 + str) 是一样的,加法交换律,a+b 等于 b+a
*(2 + str) 就是 2
就是编译器允许这么写
哈哈哈2【str】不过确实一样的== str【2】不过最好不要这么写
另外
你这str【20】是个字符诶右值是字符串,值是个地址。。
而:
str= “字符串”
也不行str是个常量指针不能左值 哦 对了 你str【20】 也越界了
页:
[1]