c语言,字符串和指针问题

2024-11-23 23:55:52
推荐回答(5个)
回答1:

崩溃原因:printf("%s",*p);没能找到字符串结束符。
---------------------------------------
1)字符串是以\0结束的,比如:char*p="nihao";//o后面会自动补充一个\0
2)*p表示取值,一般数组:如int a[]={1,2,3}那么*a的值就是a[0]的值。
3)你用%s表示你要打印一个字符串,%s打印需要找到\0,而你用*p却只打印一个字符。
4)你可以试试printf("%c",*p);

回答2:

p是地址才代表字符串啊,要是*p不成第一个字符了?用%s控制输出,参数表必须是对应的字符串的第一个字符的地址,而且是一个字符紧跟一个字符输出到遇到'\0'时停止。你用%c控制,由*p输出第一个字符就不会崩溃了……

回答3:

指针a和b都指向字符串常量的地址,常量在程序运行过程中是不能被修改的,所以报运行时错误

//可以这样
//定义字符串存储空间
char a[1024];
char b[1024];

//字符串赋值
strcpy(a,"I am a student");
strcpy(b,"I am a teacher");

strcpy(b,a);

回答4:

p是地址,printf(“A,B”);它的机构中A是格式,B是地址啊

回答5:

没错 return0改成return 0加个空格