首页 > 其他分享 >C语言初级阶段7——指针2——特殊指针

C语言初级阶段7——指针2——特殊指针

时间:2022-11-07 15:12:04浏览次数:59  
标签:10 初级阶段 return fun3 int C语言 add 指针

C语言初级阶段7——指针2——特殊指针

指针函数:是一个函数,返回值类型是一个指针。

#include<stdio.h>
int* fun()
{
	//a是一个局部变量
	int a = 10;
	return &a;
}
int main() {
	int* p = fun();
	printf("%d\n", *p);//能输出一次的原因是编译器做了一次优化。
	printf("%d\n", *p);//a是局部变量,执行完就被释放了。
	return 0;
}

函数指针:是一个指针,指针的指向是一个函数。

定义格式:函数的返回值类型(*函数指针名)(函数的形参列表)

#include<stdio.h>
//函数名就是这个函数的首地址
void fun1(int a,int b)
{
	printf("%d\n", a + b);
}
void(*pFun)(int a, int b);
int main() {
	pFun = fun1;
	pFun(1, 2);
	fun1(3, 4);
	return 0;
}
#include<stdio.h>
int add(int a, int b)
{
	return a + b;
}
int sub(int a, int b)
{
	return a - b;
}
//这一部分是我写的,但是需要别人提供计算功能。
void fun3(int (*pF)(int, int), int x,int y)//int (*pF)(int,int)=add;也可以
{
	printf("%d\n", pF(x, y));
}
int main() {
	fun3(add,10,10);
	fun3(sub, 10, 10);
	return 0;
}
#include<stdio.h>
int add(int a, int b)
{
	return a + b;
}
int sub(int a, int b)
{
	return a - b;
}
typedef int(*pF)(int, int);//函数指针取别名,别名就是它自己。
//并且别名可以当作类型去使用。
#define aa 123
//这一部分是我写的,但是需要别人提供计算功能。
void fun3(pF pf, int x,int y)//int (*pF)(int,int)=add;也可以
{
	printf("%d\n", pf(x, y));
}
int main() {
	fun3(add,10,10);
	fun3(sub, 10, 10);
	return 0;
}

常量指针:定义不用初始化,能改变指向,指向的内容不能被修改。

const int *p

指针常量:定义的时候,必须初始化,不能改变指向,可以改变指向的内容。这个常量的值是一个指针。

int *const p1:

#include<stdio.h>
void fun4(const int* a)
{

}
int main()
{
	int a = 10;
	int b = 20;
	int* const p3 = &a;
	printf("%d\n", *p3);
	return 0;
}

大端存储和小端存储

1.大端存储:高位存于高位中(适合人的存储方式)

数据的地址:0x12345678

0x0-0x3这四个字节当中

0x0 12

0x1 34

0x2 56

0x3 78

2.小端存储:低位存于低位中(电脑默认的存储为小端存储)

数据的地址:0x12345678

0x0-0x3这四个字节当中

0x0 78

0x1 56

0x2 34

0x3 12

标签:10,初级阶段,return,fun3,int,C语言,add,指针
From: https://www.cnblogs.com/George-Judson/p/16866022.html

相关文章

  • C语言初级阶段7——指针3
    C语言初级阶段7——指针3指针数组:描述的是一个数组,存储的是指针#include<stdio.h>voidfun(int(*arr)[2]){ for(inti=0;i<2;i++) { for(intj=0;j<2......
  • 实验4 类与数组、指针
    task5.cpp#include<iostream>#include"vectorInt.hpp"voidtest(){usingnamespacestd;intn;cin>>n;vectorIntx1(n);for(autoi......
  • 计算机等级考试二级C语言上机题集(第76~80套)
    第76套1.程序填空题给定程序中,函数fun的功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。例......
  • 计算机等级考试二级C语言上机题集(第71~75套)
    第71套1.程序填空题给定程序中,函数fun的功能是:将参数给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中读入,并调用库函数atoi和atof将字符串转换成相......
  • 计算机等级考试二级C语言上机题集(第66~70套)
    第66套1.程序填空题给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符。若找不到相同的字符则函数不做任何处理。例如......
  • 计算机等级考试二级C语言上机题集(第61~65套)
    第61套1.程序填空题给定程序中,函数fun的功能是:找出100~x(x<=999)之间所有整数中各位上数字之和为15的整数,然后输出;符合条件的整数个数作为函数值返回。例如,若x=500时,100~50......
  • 计算机等级考试二级C语言上机题集(第56~60套)
    第56套1.程序填空题给定程序中,函数fun的功能是:在带头结点的单向链表中,查找数据域中值为ch的结点。找到后通过函数值返回该结点在链表中所处的顺序号;若不存在值为ch的结点,......
  • 计算机等级考试二级C语言上机题集(第51~55套)
    第51套1.程序填空题给定程序中,函数fun的功能是将不带头结点的单向链表逆置。即若原链表从头至尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6......
  • 初学C语言(3)
    由于疫情原因在学校无法更新。常量:1.字面常量:直接输入即可。如图:2.const修饰的常量:intmain(){constintnum=3;//语法形式为const+数据类型+变量名+=+变......
  • <一>类,对象,this指针
    C++类:实体的抽象类型实体(属性,行为)->ADT(abstractdatatype)类(属性->成员变量,行为->成员方法)OOP语言4大特征抽象封装/隐藏(通过publicprivateprotected)......