本文介绍: 输入一个学生的学号,姓名,性别,用结构体存储,通过 scanf 读取后,然后再 通过 printf 打印输出Input学号,姓名,性别,例如输入 101 xiongda mOutput输出和输入的内容一致,如果输入的是 101 xiongda m,那么输出也是 101 xiongda m注意:字符数组本身就是一个指向字符数组开头的指针。因此,不需要使用取地址运算符&来获取数组的地址。
第一题
Description
输入一个学生的学号,姓名,性别,用结构体存储,通过 scanf 读取后,然后再 通过 printf 打印输出
Input
学号,姓名,性别,例如输入 101 xiongda m
Output
输出和输入的内容一致,如果输入的是 101 xiongda m,那么输出也是 101 xiongda m
代码
#include <stdio.h>
typedef struct student{
int num;
char name[20];
char sex;
}stu;
int main() {
stu s;
// name数组变量是一个字符数组,它本身就是一个指向字符数组开头的指针。因此,不需要使用取地址运算符&来获取name数组的地址。
scanf("%d%s %c",&s.num,s.name,&s.sex);//%c不排除空格,scanf()函数不加n
printf("%d %s %cn",s.num,s.name,s.sex);
return 0;
}
注意:
字符数组本身就是一个指向字符数组开头的指针。因此,不需要使用取地址运算符&来获取数组的地址。
第二题
Description
使用 C++的引用,注意提交时把代码选为 C++;在主函数定义字符指针 char *p, 然后在子函数内 malloc 申请空间,通过 fgets 读取字符串,然后在主函数中进 行输出;要求子函数使用 C++的引用,注意在 C++中从标准输入读取字符串, 需要使用 fgets(p,100,stdin)
Input
输入一个字符串,例如 I love C languag
Output
如果输入的是 I love C language,那么输出也是 I love C language
代码
#include <stdio.h>
#include <stdlib.h>
void modify_pointer(char *&p)//改变主函数p,加引用
{
p = (char*)malloc(100);//申请空间
fgets(p, 100, stdin);//如果使用 fgets 传入的是一个指针变量,中间参数是指针指向的空间大小
}
int main()
{
char* p=NULL;
modify_pointer(p);
puts(p);
free(p);
return 0;
}
结果:
原文地址:https://blog.csdn.net/m0_74343360/article/details/135825978
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_61909.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(1)
请解释在使用结构体存储学生信息时,为什么字符数组不需要使用取地址运算符&来获取数组的地址?