字符串赋值给字符指针(char *a="hello")的正确理解方式
来源:互联网 发布:淘宝网简单数字油画 编辑:程序博客网 时间:2024/06/15 00:38
Technorati 标签: 字符串,数组,地址,char *;
对于语句 char *a="hello";
对于这个声明方式,会造成的误解是:声明了一个字符指针(它会指向一个位置),将“字符串”赋值给 指针表达式"*a"所指向的地址。但正解是:声明了一个字符指针后,并用字符串常量的第一个字符的地址赋值给指针变量a。
即正确顺序是:1.分配内存给字符指针;2.分配内存给字符串;3.将字符串首地址赋值给字符指针;
这里有两点需要考虑清楚的地方:①*a只是指向一个字符。举例如下:
#include <stdio.h>#include <stdlib.h>int main(void){ char *a="bcd"; printf("输出字符:%c /n", *a); /*输出字符,使用"%c"*/
printf("输出字符:%c /n", *(a+1) ); /*输出字符,使用"%c"*/ printf("输出字符串:%s /n", a); /*输出字符串,使用"%s";而且a之前不能有星号"*" */ system("pause"); /*为了能看到输出结果*/}/*运行结果如下:输出字符:b
输出字符:c输出字符串:bcd*/
② 若字符串常量出现在在表达式中,代表的值为该字符串常量的第一个字符的地址。所以”hello”仅仅代表的是其地址。
原声明方式相当于以下声明方式:
char *a; a="hello";/*这里字符串"hello"仅仅代表其第一个字符的地址*/
本文地址:http://blog.csdn.net/daheiantian/archive/2010/12/28/6110957.aspx
- 字符串赋值给字符指针(char *a="hello")的正确理解方式
- 字符串赋值给字符指针(char *a="hello")的正确理解方式
- 字符串赋值给字符指针(char *a="hello")的正确理解方式
- 含有空字符0的char 字符串给string赋值
- c中给字符数组,字符串指针赋值的方法总结
- C/C++中,为什么字符串可以赋值给字符指针变量,单引号和双引号的区别
- 给结构里的char指针赋值的一个难点
- C语言_为什么字符串可以赋值给字符指针变量,字符串的属性及存放位置
- string变量赋值给char *p指针
- char a[]="hello!"
- char *a="hello";
- 给字符指针赋值, ” “双引号与' '单引号的区别
- 将char[][] 赋值给char**的结果
- c# 给字符串的第n个字符赋值
- 如何理解字符串赋值给指针与数组的区别
- 字符串赋值给指针与数组的区别
- C++中如何给字符指针赋值
- C语言中,为什么字符串可以赋值给字符指针变量
- 2010流行语
- 合荣面试--希望能给像我这样正找工作的新手一点提示
- WTL文件选择对话框多文件选择
- 做最棒的自己
- 回顾我2010年的十件大事 happy new year! 新年快乐!
- 字符串赋值给字符指针(char *a="hello")的正确理解方式
- 2010回忆
- Twing Hot Link For PSP 公测版正式发布!
- 终于成功的附加上了数据库。
- Ref frames and Video compression picture types
- 我将来可能会用到的Eclipse快捷键,先留着
- 铸造厂ERP--设备管理信息子系统
- 直面数据库的复杂性
- Tag:Writing in 2011.1.1,00:29