c运算符优先级问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:21:42
c语言中有五种后缀运算符:后缀++、后缀--、结构体取成员.、数组取下标[]、函数调用()。五种单目运算符(或者叫前缀运算符):前缀++、前缀--、正号+、负号-、逻辑非!。在C语言中后缀运算符的优先级最高,单目运算符的优先级仅次于后缀运算符,比其它运算符的优先级都高。
那char *a[]应该表示先a[],再*?这是一个指针类型的char数组?如果不是的话如何定义呢?谢谢!

是一个数组,单每个数组里面存的是一个首地址
我给你个例子:char *a[3]={“she”,“is”,“beautiful”}
那么a【0】存的是一个she的首地址s
a【1】存的是一个is的首地址i
a【2】存的是一个beautiful的首地址b

char* a[]是指针数组,表示数组的成员是指针,相当于char* (a[])

C++的各种运算符的优先级顺序

http://www.cppreference.com/wiki/operator_precedence

*a[i]=*(a[i])
(*a)[i]=(*&a[0])[i]

怎么用看你的需要了。

char* a[]是一个char指针类型的数组,是个指针数组,不是char数组。说一个数组是什么类型的是以它存放的数据元素的类型来说的。我的理解,呵呵。