请详细解释下char * str[20] 和 char (*str) [20] 的区别,万分感谢!

供稿:hz-xin.com     日期:2025-01-14
FORTRAN编程语言与C语言的区别是什么?

fortran语言中可通过定义子程序从而返回一系列变量值,而c语言的函数一般只能返回一个变量值。
Fortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率。易学,语法严谨。可以直接对矩阵和复数进行运算,这一点类似MATLAB。自诞生以来广泛地应用于数值计算领域,积累了大量高效而可靠的源程序。很多专用的大型数值运算计算机针对Fortran做了优化。广泛地应用于并行计算和高性能计算领域。
C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。不同的变量类型可以用结构体(struct)组合在一起。只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。部份的变量类型可以转换,例如整型和字符型变量。通过指针(pointer),C语言可以容易的对存储器进行低级控制。预编译处理(preprocessor)让C语言的编译更具有弹性。

?:的意思是条件运算符,使用的格式如下(条件)?A:B,如果条件成立,表达式的值就是A,否则是B。
!的意思是用来取非运算的,!true的结果就是 false !false 的结果是 true。
写程序中,?:用的比较少,!主要用在条件判断中。
延展回答:
1、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
2、尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
3、C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

这个涉及到运算符的优先级问题,类似的问题还有指针函数、函数指针。“()”运算符优先级高于“[]”高于“*”所以char * str[20]中str相与“[]”先结合,就成了str[],这是什么?数组!没错,这就是数组,接下来str[]在于“*”结合,就成了*str[],所以这个式子就可以这样写:
char *(str[20]);这就是指针数组,什么是指针数组?指针数组就是数组里面装的是指针,你可以这样来理解,整形数组里面装的是整形数据,那么指针数组里面装得就是指针,指针数组其实就是二维数组。另一个就很简单了吧,由于“()”优先级最高所以先运算“()”里的内容,*str,这是指针,然后在于“[]”结合,这就是数组指针,什么是数组指针?数组指针就是指向数组首地址的指针,你也可以这样来理解,int *p;p指向的是int类型数据的地址,那么数组指针呢?就是指向数组首地址的指针。总结:指针数组是数组,数组的内容是指针;数组指针是指针,指针指向的值数组的首地址。现在明白了吧,你可以试着去理解指针函数和函数指针吧

第一个是指针数组,即这个数组里面存放的是指针
第二个是指向一维数组的指针,他的元素有20个

char * str[20]:str 是含20个元素的数组,数组的元素是指向字符的指针
char (*str) [20]:str是个指针,指向一个含20维字符的数组。

什么是char* str[256];
一句话包含两个意思 1.定义以256个字符型(char)为单位的组成数组str 2.str内的256个字符变量全部赋值为ASCII的0 解释下 ={'\\0'} 数组中第一个为'\\0',其他的全为0 '\\0'其实就是0 同时可以表示字符串结束 也就是说数组内全是0 char a[4]={1,2,3} 与 char a[4]={1,2,3,0} ...

关于char str[],char *str[],str(*str)[]我有些弄晕了
1, char str[]: 就是一个字符的数组,可以盛放多个字符,例如'a' 'b'等等。2,char *str[]: 根据运算优先级str首先和[]结合,说明他是一个数组。然后其类型是char*。char*一般可用来指向字符串,所以说它是一个字符串数组,其成员可以是"abc", "123"等。3,(*str)[]:因为有(),所以...

char str和char* str有什么区别?
char *str:声明的是一个字符型指针,这个指针可指向任何字符串常量或某个字符变量。char str[] :声明的是一个字符型数组,数组的内容可以是任何内容,末尾加上’\\0’ 后就是是字符串。

请详细解释下char * str[20] 和 char (*str) [20] 的区别,万分感谢!
这个涉及到运算符的优先级问题,类似的问题还有指针函数、函数指针。“()”运算符优先级高于“[]”高于“*”所以char * str[20]中str相与“[]”先结合,就成了str[],这是什么?数组!没错,这就是数组,接下来str[]在于“*”结合,就成了*str[],所以这个式子就可以这样写:char *(str[20...

char **str和char *str[]有什么区别?
**str 或 char const **str可以定义,const不区分前后顺序,意义都是表示str是常量(不能赋值)。只能定义char *str[5]而不能定义char *str[],因为编译时程序不能确定str数组有几维。char *str[5]表示字符串数组,数组数量是5,既是5个string又是一个string array,每个string不限字符个数。

char *str 和char str[]的区别
char str[]:这里面的str表示一个char类型的数组指针,该指针所指向的数组内容是保存在栈上面的,是可以修改的。而char*str是一个字符串指针,这个指针指向的是字符串第一个字符的地址,而这个指针存在栈上,但是字符串的内容并不在栈里面,而在字符常量区域里面储存。所以查看char *str1 = "abcd1234"...

char str和char str[]的区别是什么?
一、概念不同 char *str 声明的是一个指针,这个指针可以指向任何字符串常量。char str[] 声明的是一个字符数组,数组的内容可以是任何内容,严格意义上说,末尾加上'\\0' 之后才能算是字符串,二、变量不同 char *str里的str是指针变量,str的值未初始化(局部变量的话。全局则自动初始化为NULL)...

有关C语言字符串的问题。char *str[]
char *str[] = {"hello","the","world"};相当于定义了一个指针数组,它的三个元素都是指针,分别指向三个常量字符串:"hello"、"the"、"world",常量字符串只允许读,无法写。比如,char *p="hello world",那么你就无法通过scanf("%s",p);把"hello world"变成其他字符内容 include<stdio....

这是c语言里的程序,char*str;语句是什么意思?
定义一个指向char类型成员的指针str 由于C语言中的数组其实就是以数组名为指针(地址)的,因此可以视为定义一个char数组str 如char *str="hello"等价于char str[]="hello"

声明char*str[3];的含义是什么
char *是指针类型,中括号表示数组, 故char *str[4]是字符型指针数组, 可以把char *看成类型,和int等价,想必知道int str[4]表示int型数组