c++指针问题
#include<stdio.h> #include<iostream.h> char *connect(char *s1,char *s2) { char *p=s1; while(*p) p++; while(*s2) {*p=*s2;p++;s2++;} return s1; } void main() { char s1[50],s2[50]; gets(s1);gets(s2); cout<<connect(s1,s2); } 1.运行之后为什么会显示烫? turn s1为什么能把全部结果显示出来?指针不是一个地址吗?指针到底是什么东西? 3.如果void main(){char *s1;s1=new char[40];cin>>s1;cout<<s1;输入的结果与输出的相同吗?}
指针说白了就是一个地址类数据,它保存的内容就是另外一个存储单元的地址 就像你的电影票,上面写的是排号和座位,通过该票你就能找到你的位置一样 指针就是这样的 唯一不同的是,计算机存储是顺序连续的,给定一个地址,那么你就可以通过该指针找到你要的数据的地址,并通过该地址找到你要的数据,当然就可以访问下一个地址的数据了。
你是用指针操作字符串中的字符, 在s1末尾加上若干字符后, 没有添加字符串结束符‘\0’, 而对于没有字符串结束符的“字符串”,系统会认为s1[0]到s1[49]都是字符串的内容, 而s1[strlen(s1)+strlen(s2)]到s[49]段是没有被赋值过的,所以输出末尾会有若干‘烫’
答:typedef struct person{ int mark1,mark2; char name; }information; 问题主要出在这里,上面的nam...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>