嵌入式C之数组与指针

一、数组

数组元素初始化

int arr[10] = {1,2,3};//不完全初始化,剩余的元素默认初始化为0

 所有数组元素数组获取用sizeof(用来计算以字节为单位的数据大小)

int a[10]; // 定义一个长度为10的数组a
    printf("%lu\n", sizeof(a)); // 输出数组a的大小
    printf("%lu\n", sizeof(a[0])); // 输出数组a中元素的大小
    printf("%lu\n", sizeof(a)/sizeof(a[0])); // 输出数组a中元素的个数

数组元素交换

字符串的定义

字符数组方式: char str[] = "Hello,world!";

指针方式: char *str = "Hello,world!";

注意: 使用指针方式定义字符串时,指针变量指向了字符串常量的首地址

获取字符串长度  strlen(str),注意以下长度是12,strlen计算的长度是字符串实际的字符个数

#include <stdio.h>

#include <string.h>

int main() {

    char str[] = "Hello,World!";

    int length = strlen(str);

    printf("字符串的长度为:%d\n", length);

    return 0;

}

字符串数组长度:

int length=sizeof(数组名)/sizeof(数组名[0])  注意sizeof计算的字符数组长度比实际字符多1个,以便容纳字符数组最后一个空字符'\0'

#include <stdio.h>
#include <string.h>
int main() {
    char str[] = "Hello,World!";
    int length = strlen(str);
    printf("字符串的长度为:%d\n", length);
    int length1 = sizeof(str)/sizeof(str[0]);
    printf("数组的长度为:%d\n", length1);
    return 0;
}

字符串长度是: 12

数组长度是: 13

二维字符数组

char name[5][20] = {"Tom","Jack","xiaoming","xiaohua","Chinese"};
    //二维字符数组,也是一维字符串数组,5个字符串name[0],name[1],....name[4]
    printf("%s,%s\n",name[2],name[4]);

二、指针

指针存放地址,所以指针的大小直接取决于地址的大小,即与机器字长有关,与地址空间中存放的数据类型无关。

指针的大小在32位平台是4个字节,在64位平台是8个字节

指针引用 *

int *ptr;int* ptr; 

都是用来定义一个prt指针变量的;功能完全相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值