数组和函数

数组和函数:

定义数组时对数组赋予初值:

一维数组:

int array[5];   //未初始化的局部变量是垃圾值
int array[5] = {1, 2, 3, 4, 5};
int array[5] = {1, 2};   //对部分元素初始化,其他未初始化元素为0

int array[] = {1, 2, 3, 4 ,5};

二维数组:

    int a[4][3];
    int a[4][3] = {1, 2, 3, 4, 5 ,6, 7, 8, 9, 10, 11, 12};
    int a[4][3] = {{1, 2, 3}, {2, 3, 4}, {3, 4, 5}, {7, 9, 8}};
    int a[4][3] = {1, 2};
    int a[4][3] = {{1}, {2, 3}, {3, 4}, {5}};
    int a[][3] = {1, 2, 3, 4, 5 ,6, 7, 8, 9, 10, 11, 12};
    int a[4][3] = {0};

关于数组地址理解

    printf("%p\n", &a[0][0]);    //首元素的地址,单位4字节
    printf("%p\n", a[0]);        //首行首元素地址,单位4字节
    printf("%p\n", &a[0]);       //首行的地址,单位12字节
    printf("%p\n", a);           //首行的地址,单位12字节
    printf("%p\n", &a);          //数组的地址,单位48字节

    printf("***********************\n");

    printf("%p\n", &a[0][0] + 1);
    printf("%p\n", a[0] + 1);
    printf("%p\n", &a[0] + 1);
    printf("%p\n", a + 1);
    printf("%p\n", &a + 1);

%p是取地址,逐个字符的输入和输出,用格式符%c 输入或输出一个字符

用%s格式符输出字串,printf函数中的输出项是字符数组名,不是数组元素名

字节序,大端字节序是由高字节到低字节,小端字节序是由低字节到高字节

未初始化的局部变量是垃圾值

未初始化的全局变量是0

* 取值 去该地址名字存储的值

& 取地址 取改值下的地址

关于syrcat函数,strcpy函数,strcmp函数的应用

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

int main()
{
/*
    char str[20] = "hello";
    char ptr[20] = "world";

    strcat(str, ptr);        //将字符串ptr连接到str后面

    printf("%s\n", str);*/

/*    char str[20] = "helloworld";
    char ptr[20] = "world";


    //strcpy(str, ptr);    //字符串拷贝函数 把ptr指向的字符串拷贝到str里 包含'\0'
    strncpy(str, ptr, 3);   //将ptr的前三个字母覆盖到str的前三个字母
    printf("%s\n", str);*/

    //字符串赋值
    /*1、char str[20] = "hello";
    2、char str[20];
    str[0] = 'h';
    str[1] = 'e'
    ...
    3、strcpy(str, "hello");

    错误:char str[20];
    str = "helloworld";*/

    char str[20] = "hello";
    char ptr[20] = "world";

    if (strcmp(str, ptr) == 0)
    {
        printf("字符串相等\n");
    }
    else if (strcmp(str, ptr) > 0)
    {
        printf("%s 大于 %s\n", str, ptr);
    }
    else if (strcmp(str, ptr) < 0)
    {
        printf("%s 小于 %s\n", str, ptr);
    }

    if (strncmp(str, ptr, 1) < 0)    //比较第一个字母的大小
    {
        printf("%s 小于 %s\n", str, ptr);
    }

    return 0

}

函数调用:1  通过函数名找到函数的入口地址(函数就是入口地址) 2 给形参分配空间 3  传值 4(八十餐传给形参,)(值传递)4 执行函数体5 返回 6 释放空间(释放栈空间)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值