C语言函数和指针

1 strlen函数

计算制定字符串的长度,不包含字符串结束标志符"\0"。也就是计算\0 之前的字符个数

char str[] = "abc\0defg";
    int n = strlen(str);
    printf("输出为%d\n",n); //输出为3,

2 sizeof函数

sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位来计数。

int arr[] = {9,1,2,5,4,7,8,9};
int len = sizeof(arr) / sizeof(arr[0]) 

3 字符串追加

char str1 = "hello";
char str2 = "world";
char str3[100];

int i = 0int j = 0;

while(str1[i] != '\0'){
	str3[i] = str1[i];
	i++;
}

while(str2[j] != '\0'){
	str3[i+j] = str2[j];
	j++;
}

4 空指针和野指针

任意数值赋给指针变量没有意义,因为这样的指针就成了野指针

int *p = 10 ; 指向地址为10的内存空间

这种就是野指针,指针变量 p 指向了未知的空间,野指针不会直接引发错误。

空指针:

int* p = NULL; // 指针变量p 指向内存地址编号为0 的空间

5 万能指针

void * 可以指向任意变量的内存空间

可以接受任意类型变量地址

int a = 10;
void* p = &a;

*p = 100; //会报错 需要进行类型转换,现在指针p 是void类型的,需要转成int类型
//(int* )p 对指针p进行类型转换,转成int类型的指针
//正确写法
*(int*)p = 100;

6 const修饰指针

int const a = 10//定义一个常量
int* p = &a;
//通过指针修改a的值
*p = 100; 

const 修饰指针的两种情况

  • 修饰指针类型,这种情况可以改变指针变量的值,但是无法改变指针指向内存空间的值
int b = 50int a = 10const int* p = &a;

p = &b; //可以。可以改变变量的值
*p = b //不可以
  • 修饰指针变量
int b = 50int a = 10int* const p = &a;

p = &b; //不可以
*p = b //可以
  • 都不可以修改
int a = 10const int* const p = &a

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值