栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】初级阶段12

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】初级阶段12

作业:

C语言未提供输入/输出关键字,其输入和输出是通过标准函数库来实现的。C语言通过scanf函数读取键盘输入,键盘输入又被称为标准输入。当scanf函数读取标准输入时,如果还没有输入任何内容,那么scanf函数会被卡住(专业用语为阻塞)执行时输入10,然后回车,显示结果如上图所示。为什么第二个scanf函数不会被阻塞呢?其实是因为第二个scanf函数读取了缓冲区中的'n',即gets(p)实现了读取,打印其实输出了换行,所以不会阻塞。

解决办法:???

#define _CRT_SECURE_NO_WARNINGS
#include
int main() {
	int i;
	scanf("%d", &i);
	char* p;
	p = (char*)malloc(i);
	char c;
	scanf("%c", &c);//为了去除n
	gets(p);
	puts(p);
	return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include
int main() {
	char* p = "hello";//把字符型常量"hello"的首地址赋给p
	char c[10] = "hello";//等价于strcpy(c,"hello");
	c[0] = 'H';//此处可修改是因为把"hello"拷贝到了栈里,是对栈空间修改
	//p[0] = 'H';//不可以对常量区数据进行修改
	printf("c[0]=%cn", c[0]);
	printf("p[0]=%cn", p[0]);
	return 0;
}

 内存 可读 可写

常量区数据只可读,不可写。

#define _CRT_SECURE_NO_WARNINGS
#include
int main() {
	char* p = "hello";//把字符型常量"hello"的首地址赋给p
	char c[10] = "hello";//等价于strcpy(c,"hello");
	c[0] = 'H';//此处可修改是因为把"hello"拷贝到了栈里,是对栈空间修改
	//p[0] = 'H';//不可以对常量区数据进行修改
	printf("c[0]=%cn", c[0]);
	printf("p[0]=%cn", p[0]);
	p = "world";//将字符串world的地址赋给p
	//c = "world";//非法,由于数组名对应的并非一个变量
	puts(p);
	puts(c);
	return 0;
}

二级指针(不太重要)

二级指针的偏移考研无需掌握


#define _CRT_SECURE_NO_WARNINGS
#include
void change(int** p,int* pj) {
	*p = pj;
}
int main() {
	int i = 10;
	int j = 5;
	int* pi;
	int* pj;
	pi = &i;
	pj = &j;
	printf("i=%d,*pi=%d,*pj=%dn", i, *pi, *pj);
	change(&pi, pj);
	printf("after change i=%d,*pi=%d,*pj=%dn", i, *pi, *pj);//使*pi的值为5
	return 0;
}

函数

为什么strcpy,没有头文件也可以运行,原因是这个函数的实现是在C库中,头文件中只是声明。

func.h

#include
int printstar(int i);//函数声明
void print_message();

func.c

#include "func.h"
int printstar(int i) {
	printf("*********************n" );
	printf("prinstar%dn", i);
	return i + 3;
}
void print_message() {
	printf("how do you don");
	printstar(3);
}

main.c

#include "func.h"
int main() {
	int a = 10;
	a = printstar(a);
	print_message();
	printstar(a);
	return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/847904.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号