栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

慕课第八周 c语言入门 指针与字符串

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

慕课第八周 c语言入门 指针与字符串

运算符&:

作用:获取变量的地址,他的操作数必须是变量,不是变量不能取地址。

因为c语言的变量是放在内存中的,变量放在哪个地方就有地址。

地址大小与int是否相等,取决于编译器。

需要输出地址——int i;printf(“%p”,&i)

指针:

保存获取的地址的变量。

注意:int* p,q和int *p,q都表示p是一个指向int的指针变量,而q则是一个普通变量。

变量的值是指针的地址;普通变量的值是实际的值,而指针变量的值是别的变量的地址。

*,一个单目运算符,用来访问指针所表示的地址的变量

函数参数表里的数组其实是指针,可以用数组的运算符[]进行运算,在函数中,计算sizeof(a)=计算sizeof(int *)

数组是特殊的指针,因为数组变量本身就表达地址,所以不需要用&来取地址,但数组单元表达的是变量,需要用取地址符&来取地址。

*运算符可以对指针做,也可以对数组做。

数组变量是常量指针,所以不能被随意赋值。

字符类型:

字符的输入输出:

#include 

int main(){
	char c;
    int i;
    c=i;
	scanf("%d",&i);
	printf("c='%c'n",c);
    printf("c=%dn",c);
	return 0;
}

 如果%d后面没有空格,说明整数只读到整数结束为止。

字符计算:

 在ASCLL表中数字0——9依次排列,0最小,9最大;字母在ASCLL表中按顺序排列,大写字母和小写字母是分开排列的,a+'a'-'A'可以把大写字母变成小写字母,a+'A'-'a'可以把小写字母变成大写字母。

逃逸字符:

字符串:

以整数0结尾的一串字符,写成‘’ ,‘’表示字符串的结尾,但本身却不是字符串的一部分,计算字符串长度时不包括结尾这个零,字符串以数组的形式存在,访问时可以以数组或者指针的形式,多数以指针的形式

字符串常量:

例如:“Hello",会被编译器变成字符数组放在某处,这个数组长度为6,因为还有结尾的0;相邻的字符串自动连接成为一个大的字符串。

c语言的字符串是以字符数组的形式存在,不能用运算符对字符串进行运算,但可以遍历字符串。

在c语言中,字符串的字面量可以用来初始化字符数组。

char*s="Hello World"里s所指的字符串不能写入,如果想要修改字符串,可以用数组的方式:char s[]="Hello World"

字符串以指针的形式表达:用来处理参数,用来动态分配空间;以数组的表达:这个字符串就在这里,以本地变量的方式被自动回收。两种不同的表达方式。

char*未必是字符串,只有当它所指的字符数组结尾有0时,才能说它是字符串。

字符串计算:

字符串的输入输出用%s

常见错误:例如:以为chae*string;就是定义了一个字符串类型的变量,但实际上只是定义了一个指针变量(万一是本地变量,本地变量没有默认初始值)没有对string初始化,所以每次运行不一定会成功。

字符串函数,这些函数都放在一个名为string.h的头文件中:

字符串函数:

1.srlen函数:

 2.strcmp函数:

3.strcpy函数:

4.strcat函数:

 

strcpyhestrcat函数都不太安全,尽量不要使用。当然,有安全版本如下图,str后加上n。

 

strchr表示从左边开始查,strrchr表示从右边开始查。 

ps:在vs中用scanf_函数的话,详见:(1条消息) C语言scanf_s()函数的用法_墨梅C的博客-CSDN博客_scanf_s

 

 

在有些时候并不需要传入字符串长度的参数

像scanf_s()函数要求输入的类型是%c(单个字符)、要求输入的类型是%d(十进制整数)、要求输入的类型为%f(浮点型).....等等。换句话,只有当函数要求传入的类型是%s(字符串)时,才要需要传入字符串长度的参数。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号