问题描述
- 关于C语言 指针数组的小问题
-
指针数组赋值(字符串)后,可以单独引用某一个字符串中的第X个字符(单个字符)吗?输出必须用%s 不能用%c ??
解决方案
楼主是要这种吗?
char *str[3] = {"skjf", "sd", "askjfssf"};
printf("%cn", str[0][3]); //打印出f
printf("%cn", *(str[2] + 3));//打印出j
解决方案二:
如果在编译器中定义了一个字符串常量"abc",那么这个字符串常量表示的是一个地址,也就是你可以使用"abc"[2]这样的方式来访问这个字符串(
2["abc"]的效果是一样,都是访问第3个字符)。
按照楼主的说法定义一个数组,那么数组中的每个元素都是一个字符串的首地址,可以使用我说的方法访问这个字符串的每个字符。
需要注意的是,这和c语言的二维数组的概念是不一样的,因为数组里面放的是每个字符串的首地址,并非真正的字符串。也就是说字符串的内存并没有包括在这个数组里面。值得一提的是,数组中每个元素的长度都是32bit(因为是指针)。
时间: 2024-10-29 07:46:54