关于间接访问符和自增自减操作符结合使用的问题
大家好,有这样的一个问题要请教下大家:
在指定的字符串(指针)数组中查找特定的一个字符,原代码如下:
这里主要我不明白的地方是**strings++和*(*strings)++两者之间的区别。
我只知道*(*string)++的解读过程是:
1. 括号内的先计算,*string访问字符串数组中的当前字符串(或指针);
2. 按照C语言中的操作符/运算符优先级,++和*是同级的并按照从右到左的顺序执行,所以先执行++;
3. 后缀++操作符对指针的操作实际是先产生一个指针的拷贝,这里是*string,然后再增加指针的值;
4. 最外层左边的间接访问操作符*实际是访问步骤3中产生的*string指针的拷贝(指针值未增加前的),所以其直接作用是:对当前字符串中的当前字符进行测试,看是否是我们需要的字符,由于++产生的副作用,指向当前字符串字符的指针值增加1。
但如果不对*strings加括号,也就是**strings++这个该如何解读呢?谢谢大家!
在指定的字符串(指针)数组中查找特定的一个字符,原代码如下:
/**
@* Function name:find_char
@* Description:find a specific char in a string array
@* Input:strings: the string array where we search the char
value: the value of the char we need to search
@* Output:0: no matched char is found, 1: we can find the char we need
*/
int
find_char(char **strings, int value) {
assert(strings!=NULL);
/* 对于列表中的每个字符串进行查找 */
while(*strings!=NULL) {
/* 观察字符串中的每个字符,看看它是否是我们查找的那个 */
while(**strings!='\0') {
if (*(*strings)++ == value) {
return 1;
}
}
strings++;
}
return 0;
}
/* 程序用到的实参及调用 */
char *strings[]={"A string", "Another", "Third", "Last", '\0'};
int result=find_char(strings, 'T');
这里主要我不明白的地方是**strings++和*(*strings)++两者之间的区别。
我只知道*(*string)++的解读过程是:
1. 括号内的先计算,*string访问字符串数组中的当前字符串(或指针);
2. 按照C语言中的操作符/运算符优先级,++和*是同级的并按照从右到左的顺序执行,所以先执行++;
3. 后缀++操作符对指针的操作实际是先产生一个指针的拷贝,这里是*string,然后再增加指针的值;
4. 最外层左边的间接访问操作符*实际是访问步骤3中产生的*string指针的拷贝(指针值未增加前的),所以其直接作用是:对当前字符串中的当前字符进行测试,看是否是我们需要的字符,由于++产生的副作用,指向当前字符串字符的指针值增加1。
但如果不对*strings加括号,也就是**strings++这个该如何解读呢?谢谢大家!
...全文
相关推荐
python中为什么没有自增或者自减
在c语言和c++中我们经常会用到自增或者自减的语句,但对于python中如果运用这种格式便会报错…why? 一、预备知识 小整数池 python中为了提高储存效率,对于int类型的整型变量的储存,有一个专门的小整数池,它会存放-5到256的整形数值,并对应相应的地址。当我们调用这个区间内的整型数值时,系统会从小整数池中将需要的数字拿出。 二、正文 对于c语言,当我们定义一个变量并对其赋值的时候,它会先分配一个内存地址,然后将我们赋予的值储存到该地址当中。 但对于python它是从整数池中取得该对象。 因此当我们使用自增或者自减(i++或i–)的时候,它相当于对对象本身进行运算,但p
Java中自增和自减操作符(++/--)的那些事
主要给大家介绍了关于Java中自增和自减操作符(++/--)的那些事,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
Swift视频教程:基本操作符系列 浮点数取余和自增自减
Swift视频教程:基本操作符系列 浮点数取余和自增自减
自增与自减
对自增与自减的另一种理解
MySQL字段自增自减的SQL语句示例介绍
MySQL的自增语句大家应该都很熟悉,本文为大家介绍下MySQL字段自增自减的SQL语句,需要的朋友可以参考下


