1.字符串的输出
用%s输出一个字符串,从给定的地址开始,一直输出字符,直到遇到\0就停止了
例:Char str[]=”itcast”;
Printf(“%s”,str);
字符串的输入
从键盘上接受一个字符串,保存在以str为首地址的字符数组中。
例: Char str[10];
Scanf(“%s”,str);
注意:
1)以%s格式进行输入的时候,如果输入的字符串有空格,则空格之后的字符无法被接受保存(即不保存空格之后的字符串)。
2)输入的字符串的长度要小于数组的长度
2.字符串结束符
字符串的额长度包括字符串加上结束符。
Char str[]=”abc”;
Str的字符长度为4
字符串长度的计算
1)使用字符串函数
Strlen(str);
2)以‘\0’作为条件,进行判断,遇到\0就结束
字符数组与普通数组的区别
1.数据类型指的是数组所包含的元素的类型,而不是数组名的类型,数组名永远是一个指针,指向一个元素的地址,即数组首地址。
2.字符数组的元素类型为char 整型数组的元素类型为int
3.字符数组有%s支持整体输入输出 而整型数组不能整体输出
4.字符数组初始化 str[]=”sdf”; 可以省略花括号
字符串函数的使用
使用puts和gets必须包含头文件 stdio.h
1. Puts() 输出一个字符串
2. Gets() 输入一个字符串
例 :Char str[]=”abc”;
Puts(str); 输出字符串且自动换行
注意:
1)使用gets()可以输入空格 scanf空格之后的不被保存。
2)Gets();是不安全的因为它不能检测越界问题。
使用strcat()需要引用string.h的头文件
3. strcat() 连接一个字符串
Strcat(a,b)---->将b的字符串放在astr字符串的后边即将a的\0覆盖
4.strcpy 字符串的拷贝函数
Strcpy(a,b);----->将b字符串拷贝到a字符串 即b字符串会覆盖a字符串
5.strcmp 字符串的比较函数
Strcmp(a,b);---->比较两个字符串的大小即依次比较字符的ascii码值 abc >aac
当a>b返回值大于零
当a<b返回值小于零
当a=b返回值等于零
6.strlen 字符串的长度计算函数
Strlen(a);--->不包含’\0’
指针:内存的地址。
变量的存取方式:直接存取和间接存取
1)直接存取:变量的赋值和存取(通过变量名存取值)
2)间接存取:通过地址获取存储单元的值。
指针变量
在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。
定义:类型说明符 *变量名;
类型说明符表示本指针变量所指向的变量的内容的类型。
*表示本变量是指针变量
注意:
1)定义的时候必须有*、
2)指针存放的地址内容的类型必须是与指针同类型的
3)指针也分全局变量和局部变量
指针变量初始化
1)定义的同时进行初始化
1)完全初始化
Int a=4;
Int *p=&a; --->此时p指向了a
2)部分初始化
Int *p1=&a , *p2;定义了两个指针变量 p1被初始化指向a
2)先定义后初始化
Int *p4;
P4=&a;
3)如果定义了一个指针变量,但是我们不知道让这个指针指向谁
Int *p3=null; ---->赋null表示什么也不指
用*来获取指针变量指向的存储单元的内容
Int value=*p;即value=4;
“*”的两种用法
1)用于定义一个指针变量
2)存取指针变量所指向地址的内容
注意:如果一个指针变量定义以后,如果不进行初始化这个指针变量存放的是一个垃圾数,这个指针变量,称之为野指针。一定要避免操作野指针,因为有可能导致系统崩溃。
例:int a=10; ---->定义整型变量a 初始化为100
Int *p=&a; ------>定义指针变量p 并将变量a 的地址初始化给指针变量p 即P指向a
*p=100; ------>对指针变量所对应内存空间的内容赋值为100
Int b=*p; ------>将指针变量所对应存储单元的内容赋值给b
指针的应用场景:
1)在被调函数中可以修改主调函数中的变量的值
2)让函数可以有多个返回值
二级指针:如果一个指针变量存放的又是一个指针变量的地址,则称这个指针变量为指向指针的指针变量。也称为“二级指针”。
|
|