自学内容网 自学内容网

24.4.11-13C语言学习笔记|函数、部分结构体【未完待续】

巴拉巴拉~~~哭死,学习啊啊啊啊,学校课好多,只能半夜学了

4.2函数名--特殊的地址:

void fun(int a){
int a=a+1;
printf("%d",a);
return a;
}

 指针函数??

void (*p)(int);

p=fun;

注意:函数名一直是放在”=“左边

考虑:

可以接受信息(几个?每个都是什么类型?)

可以返回信息(返回1个信息,什么类型)

typedef:利于阅读

1、第一个用法

 int len_t;             //len_t是int数据类型的变量

 typedef int len_t ;    //len_t 是int数据类型的别名

 2、第二个用法

#ifdef C64
typedef unsigned int u32;
#else
typedef undigned long u32;
#endif

这段代码是用来定义一个在C语言中使用的无符号整数类型u32。其目的是让代码在特定的编译环境中(C64)使用unsigned int,而在其他编译环境中使用unsigned long。

 

#ifdef#else是预处理指令,用于条件编译,它们允许编译器在编译代码之前做出决策,这是C语言的一个特性。#endif标志着预处理指令的结束。

3、第三个用法

首先:

typedef int *p1;
p1 abc=NULL;

//typedef int *p1;这行代码定义了一个新的类型p1,它是一个指向int类型的指针。也就是说,p1是一个指针类型,它指向一个整数。
//p1 abc; 这行代码声明了一个名为abc的变量,其类型为p1,即abc是一个指向int的指针。
//注意指针初始化防止出现包括程序崩溃数据损坏

 4、区别(typedef和struct)

表现在如何定义方面:

b56cbfe6a689491b89ec7d47001af2b9.png

 

4.3函数承上启下的作用

函数如何获取信息:

  • 从调用者处拷贝到函数空间

巴拉巴拉1:交换两个数

  1. 值拷贝(改变不了) 2.地址拷贝(可以改变)
#include<stdio.h>
void change_1(int a1, int b1) {
int temp;
temp = a1;
a1 = b1;
b1 = temp;
printf("1:a1=%d,b1=%d\n", a1, b1);
}
void change_2(int *a2,int *b2){
int temp;
temp=*a2;
*a2=*b2;
*b2=temp;
printf("2:a2=%d,b2=%d\n", *a2, *b2);
} 


int main() {
int a = 3;
int b = 4;
change_1(a, b);
printf("1:a=%d,b=%d\n", a, b);
change_2(&a,&b);
printf("2:a=%d,b=%d\n", a,b);
return 0;
}

证明了:如何通过函数改变函数外部某变量的值,通过指针

 24.4.13 周六

传递地址的含义(节省空间)

  • 反向更新* 

  • 连续空间的查看

  • 修改连续空间的值

第一个理解:

#include<stdio.h>
void fun(int** p) {
    *p = 11111;
}
int main() {
    int* a;
    fun(&a); //fun的功能是改变改变地址 
    //需要先写出函数传递的东西&a,然后再通过定义的int*a把函数写出来。 
    printf("%d", a);
    return 0;
}

      重审:需要先写出函数传递的东西&a,然后再通过定义的int*a把函数写出来。 

第二个理解:
 

scanf("%d",&a);

第三个理解:

//也是实现反向更新
int fun(struct a *date) {
date->q=222;
//通过地址反向更新某值
}
struct a {
    int q;
    int p;
    int x;
};
int main() {
    struct a luck;
    fun(&luck);
}

传递地址的目的:看、改

a60821d2c25043c48217ed726462406b.png

 

 

巴拉巴拉2:写一个strcpy函数声明

即:从一个地址,拷贝到目标地点

先写写试试呗:

 

 

 


原文地址:https://blog.csdn.net/weixin_47011416/article/details/137654958

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!