重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
10年的红寺堡网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整红寺堡建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联公司从事“红寺堡网站设计”,“红寺堡网站推广”以来,每个客户项目都认真落实执行。
#include stdlib.h
#define LINE_MAX 80
struct body{
char data[100]; //要定义成数组才可以,不然,还要去分配内存
int num;
};
void create(struct body *bd); //结构体定义后,才能使用结构体类型,所以,移动到定义之后
int main(int argc, char *argv[]) {
int choose;
struct body *bd;
bd = (struct body*)malloc(sizeof(struct body));
while(1)
{
printf(" *******************欢迎来到文章编辑系统********************\n");
printf("1. 创建新文本\n");
printf("2. 统计文本\n");
printf("5. 退出系统\n");
printf("请选择你需要的功能的序号:");
scanf("%d",choose);
switch(choose)
{
case 1:
printf("创建新文本\n");
create(bd);
continue;
case 2:
printf("统计文本\n");
continue;
case 5:
printf("谢谢您的使用!\n");
break;
default:
printf("请正确输入!\n");
continue;
}
if(choose == 5)
break;
}
return 0;
}
void create(struct body *bd)
{
printf("编辑文本,Enter键保存\n");
scanf("%s",bd-data);//结构体指针引用成员用-, 同时,格式串应该是%s
printf("您输入的文本是:%s\n",bd-data); //同上
}
数组名就是指针,例如:
#include stdio.h
void pr(char *p)
{
printf(p);
}
void main(void)
{
char s[] = "abc";
pr(s);
}
扩展资料:
注意事项
非数组类的声明尽量以指针的方式进行比较好。倘若一个指针指向的内存并不是一个数组,那么采用数组名的声明方式或许就会给人产生错误的引导。类似的,如果指向的是一个数组区域,则会给人以更加丰富的信息。例如:
int main(int argc,char* argv[])
{
/* code here */
}
与
int main(int argc,char** argv)
{
/* code here */
}
两种方式完全等价,但是前面一种能够更清晰地看出:这个参数是指向某个元素起始地址的指针,而后面的这种方式则不能够直观地看出这种含义。
访问指针变量的值:在变量名前面加*
int 到string无法赋值,因为类型不同。
转义字符是在字符无法表示的情况下借助字符中的字母前面加“\”来表示如回车符的转义字符是'\n'。
intcmp是和GetKeyFunc_t对应起来的。
而你现在错在了CmpFunc_t这个函数参数上了。
你把怎样的函数参数指针传给了BST_t *newBST?
你没交代清楚啊,你把错误指针传给newBST函数的第一个参数,编译器肯定报错了。你给了那么多代码,关键你把什么传给了BST_t *newBST的第一个参数?给一下你调用这个newBST函数的代码,而且要你传给该函数第一个参数的参数定义。
另外给个建议:定义函数时,记得对传进来的参数进行合法性检验。多加几行代码是很有必要的,能增强函数的健壮性。(微软也好,ISO也好,都对大部分函数设计时要求做必要的合法检验)
*x++和*x = *x + 1完全两个意思,你这是误会了。
提示一下,跟指针没什么关系,和优先级有关。
你的地址值传递错误,按照我给你修改的试试看,一定要注意你的实参传递的是地址还是具体的值,如果是地址,在子函数中就不要去修改你传递进来的地址。
int
main(void)
{
int
data=0;
//此处随机分配内存空间,不要用指针
myStack=makeStack(myStack,top);
Push(myStack,3);
Push(myStack,8);
Push(myStack,19);
Push(myStack,31);
Push(myStack,43);
Push(myStack,36);
Pop(myStack,data);//此处,传递的是地址值
printf("%d
",data);
}
int*
Pop(LinkedStack
myStack,int
*data)
{
pStack
cursor=myStack;
if(Stack_Empty())
{
}
else
{
while(cursor-next!=top)
{
cursor=cursor-next;
}
*data=top-data;
//此处,只是在同一个内存空间修改其值,所以不要取地址
top=cursor;
return
data;
}
}