【C】浙江大学程序设计入门——C语言指针与字符串【八】

本文介绍了C语言中的指针概念,包括sizeof运算符、地址与值的获取。指针用于存储内存地址,可以用来访问和修改变量。数组在函数传递中表现为指针,而字符串是0结尾的字符数组,不能直接进行算术运算。字符串函数如strlen用于计算长度,strcmp用于比较。此外,文章讨论了字符输入与字符串常量的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@【C】浙江大学程序设计入门——C语言指针与字符串【八】

指针

sizeof
是一个运算符,给出变量或类型所占据的字节
运算符&
scanf(“%d”,&i)里的&
取得变量的地址,它的操作符必须是变量
地址的大小是否与int相同取决于编译器

指针就是保存地址的变量
变量的值就是内存的地址
*运算符可以访问指针值所表示的地址上的变量

传入函数的数组其实是个指针,但是可以用[]进行
数组变量是特殊的指针
数组变量本身表达地址
数组变量是const的指针

int b[]   int* const b

字符类型

char是一种整数也是一种特殊的类型:字符
混合输入

scanf("%d %c",&i,&c)

中间有空格 会把空格读取

逃逸字符

在这里插入图片描述

字符串

以0结尾的一串字符
0或’\0’是一样的
0标志字符串的结束,但不是字符串的一部分
字符串以数组的形式存在,以数组或指针方式访问,多用指针
C语言的字符串是以字符数组形式存在的
不能用运算符做运算

字符串常量

char *s="hello"

s是一个指针,初始化为指向一个字符串常量
由于这个常量所在的地方,所以实际上s是const char* s,但是由于历史原因,编译器接受不带const的写法
试图对s所指的字符串写入会导致严重后果

char s[] = "hello"

需要修改字符串,应该使用数组,会把不可写的hello内容拷贝到此数组中
做字符串用指针还是数组?
数组:这个字符串在这里
作为本地变量空间自动回收
指针:这个字符串不知道在哪里
处理参数
动态分配空间
字符串可以表达为char形式
char
不一定是字符串,可以是单个字符

字符串计算

在这里插入图片描述

字符串函数

size_t strlen(const char *s)

返回s的字符串长度(不包括结尾的0)

int strcmp(const char *s1,const char *s2)

比较两个字符串,返回0 相等 1 左大 -1 右大
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值