输出结果:6
#include <stdio.h>
int main(void)
{
int a[2][2] = {{1,2}, {3,4}}
int b[2][2] = {{5,6}, {7,8}}
int (*p1)[2] = a
int (*p2)[2] = b
int (*q[2])[2] = {p1, p2} 这样才是正确的定义!
printf("%d\n", *(*q[1]+1))
return 0
}
但在tc2.0和bc3.1中提示非法初始化!
但把
int (*q[2])[2] = {p1, p2}
改成
int (*q[2])[2]
q[0] = p1
q[1] = p2
可以通过!
原因暂不清楚,估计是老旧的编译器不支持太复杂的定义!
其实最好的方法是使用typedef,简单明了,可读性大大提升!
#include <stdio.h>
int main(void)
{
typedef int (*PA)[2] 使用typedef
int a[2][2] = {{1,2}, {3,4}}
int b[2][2] = {{5,6}, {7,8}}
int (*p1)[2] = a
int (*p2)[2] = b
PA q[2]= {p1, p2} 这样可读性是否大大的增加?!
printf("%d\n", *(*q[1]+1))
return 0
}
reader := bufio.NewReader(os.Stdin)fmt.Print("Enter text: ")
text, _ := reader.ReadString('\n')
fmt.Println(text)
这是读取控制台输入的数据,可以开协程的方式来执行这个代码,协程读取,就可以在其他地方使用