2 marlous Marlous 于 2016.03.26 15:34 提问

关于C语言 指针数组的小问题

指针数组赋值(字符串)后,可以单独引用某一个字符串中的第X个字符(单个字符)吗?输出必须用%s 不能用%c ??

2个回答

qq423399099
qq423399099   Ds   Rxr 2016.03.26 15:55
已采纳

楼主是要这种吗?

 char *str[3] = {"skjf", "sd", "askjfssf"};
    printf("%c\n", str[0][3]); //打印出f
    printf("%c\n", *(str[2] + 3));//打印出j
Marlous
Marlous 回复小灸舞: 是的 我看的书上没说这种情况!定义成指针数组可以直接用二维来引用
一年多之前 回复
w1eix1iao
w1eix1iao   2016.03.26 17:01

如果在编译器中定义了一个字符串常量"abc",那么这个字符串常量表示的是一个地址,也就是你可以使用"abc"[2]这样的方式来访问这个字符串(
2["abc"]的效果是一样,都是访问第3个字符)。
按照楼主的说法定义一个数组,那么数组中的每个元素都是一个字符串的首地址,可以使用我说的方法访问这个字符串的每个字符。
需要注意的是,这和c语言的二维数组的概念是不一样的,因为数组里面放的是每个字符串的首地址,并非真正的字符串。也就是说字符串的内存并没有包括在这个数组里面。值得一提的是,数组中每个元素的长度都是32bit(因为是指针)。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!