首页 > 其他分享 >C语言学习笔记4

C语言学习笔记4

时间:2024-10-21 23:21:22浏览次数:3  
标签:arr 函数 int 笔记 C语言 学习 数组 指针 变量

函数

函数是一组一起执行一个任务的语句。每个 C 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

C语言的函数分为:1.库函数 2.自定义函数

对于库函数引用对于头文件即可使用,自定义函数需要自己调用与声明

函数的调用与声明

C 语言中的函数定义的一般形式如下:

return_type function_name( parameter list )
{
   body of the function
}

return_type即返回类型,function_name即函数名称,parameter list即参数输入,body of the function即功能主体。

一个定义加法函数的例子如下:

int Add(int x, int y)
{
	int z = 0;
	z = x + y;
	return z;
}

使用例如下:

int Add(int x, int y)
{
	int z = 0;
	z = x + y;
	return z;
}

int main()
{
	int a, b,c = 0;
	printf("请输入两个整数以求和\n");
	scanf("%d%d", &a, &b);
	c = Add(a, b);
	printf("和为%d", c);


	return 0;
}

函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。

函数声明包括以下几个部分:

return_type function_name( parameter list );

当我们在一个源文件中定义函数且在另一个文件中调用函数时,函数声明是必需的。在这种情况下,我们应该在调用函数的文件顶部声明函数。

函数的参数

1.实际参数

真实传给函数的参数,叫实参。

2.形式参数

形式参数是指函数名后{}中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内
存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效,而不能在函数外部使用。

数组

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。数组的声明并不是声明一个个单独的变量而是声明一个数组变量,比如arr,然后使用arr[0]、arr[1]、...、arr[99] 来代表一个个单独的变量。

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

一维数组

在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:

type arrayName [ arraySize ];

这叫做一维数组。arraySize 必须是一个大于零的整数常量(不能是变量),type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 int 的包含 10 个元素的数组 arr,声明语句如下:

int arr[10] = {};

初始化数组即为数组赋值,举例如下:

int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

下面是一个为数组中某个元素赋值的实例,如要为上面的arr数组的第1个元素即arr[0]赋值10,代码如下:

arr[0] = 10;

下面为寻找寻找数组中某一元素对应下标的代码示例:

#include<stdio.h>

main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 0;
	scanf("%d",&k);
	int i = 0;
	for (i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
	{
		if (arr[i] == k)
		{
			printf("%d对应的下标为%d", k, i);
			break;
		}
		
	}
	if(i== sizeof(arr) / sizeof(arr[0]))
	printf("找不到");



}

二维数组

二维数组是一种数据结构,它可以存储在一个表格中,类似于一个有行和列的矩阵。一个二维数组,在本质上是有多个一维数组构成。

二维数组的定义方式如下

     定义类型 类型名 数组名[ 行表达式 ][ 列表达式];

 例如:定义 int ar[ 5 ][ 4 ] 的二维数组,它由 5个一维数组组成,每个一维数组的大小是 4 个整型元素。可以只对部分元素赋值,未赋值的元素自动取 0 。

指针

指针也就是内存地址,指针变量是用来存放内存地址的变量。就像其他变量一样,我们在使用指针存储其他变量地址之前,需要进行声明。指针变量声明的一般形式为:

type *var_name;

type即指针的基类型,它必须是一个有效的 C 数据类型,*用来声明指针,var_name即变量名称。

所有实际数据类型,不管是整型、浮点型、字符型,还是其他的数据类型,对应指针的值的类型都是一样的,都是一个代表内存地址的长的十六进制数。

在变量声明的时候,如果没有确切的地址可以赋值,可以为指针变量赋一个 NULL 值。赋为 NULL 值的指针被称为空指针。

下面是一个使用指针的例子,其中函数的形式参数为指针变量,以此实现了对外部变量的影响。下面的程序功能是调换变量a和变量b的值。

标签:arr,函数,int,笔记,C语言,学习,数组,指针,变量
From: https://blog.csdn.net/Bubblegum233/article/details/143097490

相关文章

  • C语言第三学:分支和循环
       C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使⽤if、switch实现分⽀结构,使⽤for、while、dowhi......
  • 10.21学习
    1.格式说明符中的%2s在C语言中, %2s 是一个格式说明符,用于 scanf 、 fscanf 、 sscanf 等输入函数中。它指定了函数应该读取的字符串的最大长度。具体来说: % :表示开始一个格式说明符。 2 :指定要读取的字符的最大数量,这里是2个字符。 s :表示要读取的数据......
  • 刷c语言练习题9(牛客网)
    1、12345678char*getmemory(void){    charp[]= "helloworld";    returnp;}voidtest(void){    char*str=NULL;    str=getmemory(); printf(str);}请问运行Test函数会有什么样的结果?A、出错B、输出"helloworld"C、输出空......
  • 2024/10/21 日 日志 --》关于Mysql中的数据库连接池 简述笔记整理
    为了保证博客内容的连贯性,我决定把Maven内容单独开辟而不与JDBC相混。以下为数据库连接池的简单描述和笔记整理点击查看代码--数据库连接池--简介:--·数据库连接池是个容器,负责分配、管理数据库连接。--·它允许应用程序重复使用一个现有的数据库连接,而不是再重新建......
  • c语言小结——使电脑关机,输入正确信息取消关机
    一:代码展示 #include<stdio.h>#include<string.h>#include<stdlib.h>intmain(){charinput[20]={0};system("shutdown-s-t60");agin:printf("请输入:我是帅哥,否则电脑将在1分钟后关机\n");scanf("%s",inpu......
  • JWT 笔记
    总结由header、payload、signature三部分构成,并由英文句号拼接一起payload中存储了部分数据,可减少后端数据库查询header和payload只是用base64编码,并未加密,payload有敏感数据要手动加密jwt在过期时间到之前没法撤销,想要即时登出用户,可以采用类似oauth2.0协议中的做法:认证后......
  • C语言实践中的补充知识 Ⅱ
    一、在C语言中,%7.2f是一个格式说明符,通常用于printf或sprintf等函数中,用于控制浮点数的输出格式。这里的%是格式说明符的开始符号。7表示字段宽度。这意味着输出的浮点数将至少占用7个字符的宽度。如果浮点数的实际宽度小于7个字符(包括小数点和小数部分),那么它将在左......
  • 全网最详细深度学习环境配置(Pycharm+anaconda+pytorch+TensorFlow+cuda+cudnn+改变虚
    目录1.版本说明2.安装Pycharm3.安装anaconda1.安装2.配置路径3.修改镜像源4.修改默认虚拟环境安装位置1.查看conda信息2.修改对应文件的权限3.再次查看信息5.配置Pycharm环境4.安装torch5.安装TensorFlow+cuda+cudnn1.打开对应的文件CUDA2.打开CUDNN3.安装T......
  • 带权并查集 学习笔记
    顾名思义,就是并查集带权值。在路径压缩的时候,我们还要维护权值应该怎么办呢?关联题目:P1196[NOI2002]银河英雄传说。我们对于一个舰队维护一个\(fr\)表示到头部的距离,\(cnt\)表示该舰队的战舰数量。那么每一次合并时,先进行路径压缩,找到父亲,在将父亲的权值传下来即可。因为每......
  • #护网面试#红蓝攻防#安全# 木马文件的学习
    声明:本博文,只是基于学习进行记录。冰蝎源码<?php@error_reporting(0);session_start();$key="密钥";//该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond$_SESSION['k']=$key;$post=file_get_contents("php://input");if(!extension_loaded('......