C语言入门基础知识(2)(数组、函数)

 1.基础知识

  • 数组有类型  eg:int arr[10]  数组类型是int[10];
  • 数组名不需要取地址符号(arr),数组元素(arr[5])要&
  • %p ——地址
  • 定义二维数组的行可以省略,列不可以省略  eg:arr[ ][ 5 ];

2.sizeof计算数组元素个数

sizeof(arr)算出的是字节数。

可以用总字节数 / 单位字节数 来计算元素个数

sz=sizeof(arr)/sizeof(arr[0]);
//用sizeof计算元素个数

3.C99中的变长数组

可以使用变量指定数组大小。变长数组不能初始化,数组长度只有在运行时才确定.

注意:输入n后,数组长度会确定,后面不会更改。

int n=0;
scanf("%d",&n);
int arr[n];//gcc支持

4.练习

4.1字符串从两端向中间移动

#include<stdio.h>
#include<string.h>

int main()
{
    char arr1[] = "hello world!!!!!";
    char arr2[] = "################";
  
    int left = 0;
    int right = strlen(arr1)-1;
    
    while(left<=right)
    {
      arr2[left] = arr1[left];   //替换思想
      arr2[right] = arr1[right];

      printf("%s\n",arr2);
      left++;
      right--;
    }
}

输出结果

4.2二分查找

前提:数据是有序的

int main()
{
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int k = 0;
    scanf("%d",&k);
    
    int sz = sizeof(arr)/sizeof(arr[0]);
    int left = 0;
    int right = sz-1;

    while (left <= right)
  {
    int mid = (left + right) / 2;

    if(arr[mid] < k)
    {
        left = mid + 1;
    }
    else if(arr[mid] > k)
    {
        right = mid - 1;
    }
    eles
    {
        printf("找到了,下标是%d\n",mid);
        break;
    }
  }
    if(left > right)
    {
        printf("找不到\n");
     }
    return 0;
}

 5.自定义函数

语法形式

//函数定义

返回类型 函数名 (形参) --->可以是0个或 多个

{

  }

6.链式访问

将一个函数的返回值作为另一个函数的参数

#include<stdio.h>

int main()
{
    printf("%d",printf("%d",printf("%d",43)));
}

//输出:4321

int r = printf("hehe");
printf("%d\n",r);
//输出:hehe4

printf 的返回值是打印字符总个数

7.函数的声明和定义

先声明后定义。

8.static和extern

static是静态的意思,可以用来:

修饰局部变量,修饰全局变量,修饰函数

extern是用来声明外部符号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值