C语言基础知识之(十四):指针和字符数组、字符串数组
来源:互联网 发布:json对象合并成一个 编辑:程序博客网 时间:2024/05/17 21:54
1、定义字符数组存储字符串
char str[ ] ="iPhone";//一维字符数组,末尾含有’\0’字符。
定义一个字符指针指向字符数组
char *p = str;
使用指针p访问字符
for (int i = 0; i< 7; i++) {
printf("%c ", p[i]);
}
使用指针p打印字符串
printf("%s\n",p);//p = str
printf("%s\n",str);
2、定义指针,指向字符
char *str ="iPhone";//指针str存储的地址存储常量“iPhone”。
使用指针输出字符,读取了常量”iPhone”.
for (int i = 0; i< 7; i++) {
printf("%c ", str[i]);
}
输出字符串
printf("%s\n",str);
又如:
char *b ="iPad";"iPad"在常量区
指针b指向常量区的字符串
b[0] = 'I'; *(b+0) ='I';//只能读取,不能赋值。此式不成立。
char a[] ="iPhone";//字符数组
a是数组,存储在栈区,可以修改和读取存储单元中的数据。
“iPhone” 字符串常量,存储在常量区,常量区的数据不能修改。
说明:
指向数组的指针可以修改和读取数组元素;指向常量字符串的指针只能读取数组元素。
3、指针数组:数组中的元素都是指针
char * names[3] ={"zhangsan", "lisi", "wangwu"};// 字符串指针数组
names的本质是一维数组(数组中存储了3个char * 类型的指针)
names存储的数组元素是字符型指针char *(字符指针指向了常量字符串)
printf("%s\n",names[0]);
names[0] ="zhaoliu"; // 第一个字符指针,指向新的字符串,指针重指向
打印指针
for (int i = 0; i< 3; i++) {
printf("%s ", names[i]);
}
4、二维数组存储多个字符串
char names[3][20] ={"zhangsan", "lisi", "wangwu"};
names本质是二维数组
names存储的数组元素是字符数组(字符数组中存储的是字符串,拷贝自常量字符串)
printf("%s\n",names[0]);
strcpy(names[0],"zhaoliu");
printf("%s\n",names[0]);//names访问数组第一个元素即字符数组,不能直接赋值,只能拷贝。
- C语言基础知识之(十四):指针和字符数组、字符串数组
- C语言基础知识之(十三):指针、指针和数组
- C常见问题之字符串数组和字符指针数组问题
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言中字符数组和字符串指针分析
- C语言 字符数组和字符串指针的理解
- 找数
- uImage,zimage,bzimage,vmlinux,vmlinuz
- Jetty JNDI开发实战(上)
- Python 列表学习与使用
- Ubuntu 10.04 速配指南
- C语言基础知识之(十四):指针和字符数组、字符串数组
- Unity3D有限状态机(FSM)学习笔记【3】FSState类
- static详解
- HDU 4458 Shoot the Airplane (2012年杭州赛区现场赛F题)
- uva 11292 好长的英语题(简单的题目)
- android-屏幕适配(一)
- Linux进程间通信---有名管道 代码实现
- java并发编程第六章(3)使用阻塞式线程安全列表
- Codeforces Round #318(Div. 2) A