指针基础(二)_c语言学习笔记

[size=medium]1. c语言中的字符串
1)c语言中的字符串,本质上是 以‘\0’(数字0) 结尾的字符型数组。
2)字符串的指针(即字符串在内存中的起始地址 ):字符串第一个字符的地址。[/size]

//字符串的定义和赋值
char str[] = "I love apple!";
[size=medium] 3)使用字符串指针赋值:[/size]

char *pstr;
pstr = "I love apple!";
[size=medium] 4)字符指针变量与字符串常量之间的关系:
[img]http://images.cnblogs.com/cnblogs_com/elingwange/389869/r_%e5%ad%97%e7%ac%a6%e4%b8%b2%e6%9c%ac%e8%b4%a8.jpg[/img]

2. 字符串的引用
1)逐个字符的引用:[/size]

//定义字符指针变量pstr
char *pstr;

//用字符串常量"I love apple!"的地址给pstr赋初值
pstr = "I love apple!";

//逐个字符引用
for ( ; *pstr != '\0'; pstr++ )
printf( "%c", *pstr );
//打印出“I love apple!”

/*
* 注:字符指针变量pstr中,仅存储字符串常量的首地址,
* 而字符串常量的内容(即字符串本身),是存储在由系统
* 自动开辟的内存块中,并在串尾添加一个结束标志‘\0’。
*/
[size=medium] 2)整体引用:[/size]

char *pstr = "I love apple!";

printf( "%s", pstr ); //打印出“I love apple!”
[size=medium] 3)整体引用原理:系统首先输出pstr指向的第一个字符,然后使pstr自动加1,使之指向下一个字符;重复上述过程,直到遇到字符串结束标志。
4)注意,其它类型的数组,是不能用数组名来一次性输出全部元素的,只能逐个元素输出。

3. 野指针
1)“野指针”操作,也叫空指针赋值,指一个指针没有指向一个有效内存就被引用。
2)后果:编译时不会出错,但运行时容易出现异常,甚至系统死机。
3)原因:指针变量被定义时,系统会分配一个随机指定的初始值。如果初始地址值是用户正常使用的内存地址,也许不会发生意外,甚至运行正常;但如果初始地址值是系统程序所占内存单元的地址,此时对该内存单元进行赋值,就会破坏系统程序内存单元,这是系统会出现难以预料的错误,甚至死机。

[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值