0726错题总结,指针

这篇博客主要总结了关于C/C++编程中指针和函数返回值的相关知识。在错题总结部分,博主列举了多个关于函数返回类型、实参与形参、函数调用等方面的常见错误,强调了函数返回值由函数类型决定,无返回值函数调用结果未定义,以及宏定义和预处理的重要性。在知识点总结部分,博主讲解了指针函数的概念,如何使用指针数组打印字符串,以及动态分配内存的方法如calloc(), malloc(), realloc()。" 114572969,10294045,Java集合Collections.sort()底层实现解析,"['Java', '排序算法', 'Collections', 'ArrayList', '数据结构']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.错题总结

1.函数的返回值类型是由(在定义函数时所指定的函数返回类型)决定的。

2.如果调用一个整形函数,且此函数没有return语句,那么它将(返回一个不确定的值)。

3.实参可以是常量,变量,表达式,而形参需要与其对应的实参类型一致。

4.函数的定义不可以嵌套,但是函数的调用可以嵌套。

5.若以定义定义的函数有返回值,那么函数调用可以作为一个函数的实参,函数调用可以出现在表达式中,函数可以作为独立的语句存在。

6.函数发生调用时,实参与其对应的形参各自占用独立的空间。

7.一个函数返回值由被调函数类型确定。

8.

#include <stdio.h>
void func(int , int b);
int main(){
	int x,y;
	x=10;
	y=20;
	func(x,y);
	printf("%d %d",x,y) ;
	return 0;
}

void func(int a, int b){
	int temp=a;
	a=b;
	b=temp;
	
}
 
//输出结果10,20.因为a,b的交换值只在子函数里面实现了,调到主函数之后又释放了

9.10.11题目类似

#include <stdio.h>
#define MIN(x,y) (x)>(y)?(x):(y)
//void func(int , int b);
int main(){
	int i=10,j=15,k;
	k = 10*MIN(i,j);
	printf("%d",k);
	
	return 0;
}
/*这个程序的运行结果是10,
它是机器,机器有机器的算法,不能像人一样计算,计算顺序是
10*MIN(i,j) (i)>(j)?(i):(j)
10*(i)>(j)?(i):(j)
10*10>15?10:15
100>15,所以输出i*/

12.#define POWER(x) ((x)*(x)),任何情况下计算平方数都不会引起二义性的宏定义,括号越多越安全

13.宏定义

         在程序中凡是以#开始的语句都是预处理命令,预处理命令可以出现在c程序的任意一行中。

        宏替换不不占用运行时间,只占用编译时间

        宏名 无类型,宏替换只是字符替换,宏替换不占用运行时间

        #define N 100;        主要是在编译程序对C源程序进行预处理是用100替换了标识符N。

二.知识点总结

指针函数

使用指针数组打印字符串

数组指针

         定义一个数组指针,然后输出其中的内容,这里面可以通过指针引用法和下标法输出数组里面的元素

 calloc(),malloc(),realloc()来动态分布内存,

#include <Stdio.h>
int main(){
	int *p=NULL;
	int i;
	p = malloc(sizeof(int)*10);
	//开辟空间后不初始化
	printf("开辟空间后不初始化:\n");
	for(i=0;i<10;i++){
		printf("p指向的第%d的空间内容是%的\n",i,*(p+i));
	} 
	//开辟空间后初始化,并且打印结果 
	for(i=0;i<10;i++){
		*(p+i)=i+10;
		printf("%d  \n",*(p+i));
	}
	//改变p指向空间的第三个内容(0开始) 
	*(p+3)=133;
	for(i=0;i<10;i++){
		printf("%d  \n",*(p+i));
	} 
	//释放空间后打印 
	free(p);
	printf("%d\n",*(p+i));
	for(i=0;i<10;i++){
		printf("%d  \n",*(p+i));
	} 
	
	
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值