⑴ c语言指针。char *p【4】和char (*p)【4】的区别
char *p[4]是指针数组,代表一个有4个元素的数组p,数组中的每个元素都是一个char*型的指针;
char (*p)[4]是数组指针,代表一个指针*p,它指向一个存有4个char型元素的数组。
⑵ c语言中!4是什么意思
!4就是0,只要是非0的数,取非(!)的结果都是0。
C语言运算符:
强制类型表达式4级
(type-name)cast-expression,强制表达式成为type-name指定的类型。
乘法表达式5级
“*”乘法运算符;“/”除法运算符;“%”取余运算符。
加法运算符6级
“+”加法运算符;“-”减法运算符。
移位运算符7级
<< 左移运算符;>> 右移运算符。
关系运算符8级
<、<=、>、>=关系运算符。
相等运算符9级
“==”等于运算符;“!=”不等于运算符。
位与运算符10级
“ & ”按位与运算符
(2)c语言的4和4的区别扩展阅读
C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。
而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
⑶ c语言中%c和%4c有什么区别
%mc 前面的 m为整形数字(此问题中 前者是1 后者是4)
m的意义在于 打印时 默认分配给这个字符 几个字符位置 (当然 前者是1个 后者是4个)
因为字符本来 就占有 一个位置 所以 %c 分配给字符一个打印为 是刚占满的
但是 %4c 由于 字符本身只占有 一个位置 所以还空下三个位置 (这就要用空格来填充了)
至于 从哪边 填充 c语言默认是 右对齐的 所以 在右边(指的是这四个位置的最右边 ,并非屏幕最右边, 屏幕默认是从右往左输出的。。。)打印出字符之后 会 顺势 输出三个空格来填充,
至于 如果 想 让字符靠左对齐 那么 在%mc m 前面加个负号就可以啦 这样 %-4c 就是靠左对齐啦
就是这么个意思啦
希望有帮助
⑷ C语言中 int*p[4] 和 int(*p)[4]的区别是什么
int*p[4]是指针的数组,也就是说它是一个数组,数组里存的是一个个的指针
int(*p)[4]是数组的指针,也就是说它是一个指针,指向的是一个数组。指针指向的类型会影响到指针加减运算时地址的位移。比如说有一个数组 int a[4],加上取址运算符 &a,这个表达式的类型就是指向数组的指针,可以这样赋值 p = &a;。一般用于向函数传递二维数组的时候使用这种类型,这时还有一种更直观的写法
void matrix_sum(int matrix_a[][4], int matrix_b[][4]) {...}
这种写法和
void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4]) {...}
是等价的。
⑸ C语言中‘4’跟4有什么区别
没有什么大的区别,唯一的区别是编码不同,ASCII 分别为0x34, 0x04。公司新近的程序员总是爱用什么型来加以区分,认为 char型只能放字符,不能放整形,这是错误的。
⑹ C语言中 int*p[4] 和 int(*p)[4]的区别
一、结合性不同:
前者是指针数组,为4个int指针的数组,有4个元素;
后者是数组指针,为一个指针,类型为指向包含4个int类型元素的一维数组的指针。
二、含义不同:
int*p[4]是指针的数组,也就是说它是一个数组,数组里存的是一个个的指针。
int(*p)[4]是数组的指针,也就是说它shu是一个指针,指向的是一个数组。
三、写法不同:
一般用于向函数传递二维数组的时候使用这种类型,这时还有一种更直观的写法:
void matrix_sum(int matrix_a[][4],int matrix_b[][4]) {...}
这种写法和void matrix_sum(int (*matrix_a)[4], int (*matrix_b)[4]) {...}是等价的。
(6)c语言的4和4的区别扩展阅读:
指针数组:如char *str_B[5] 系统至少会分配5个连续的空间用来存储5个元素,表示str_B是一个5个元素的数组,每个元素是一个指向字符型数据的一个指针。如果定义如下数组:
char a[3][8]={"gain","much","strong"};
char *n[3]={"gain","much","strong"};
他们在内存的存储方式分别如图1所示,可见,系统给数组a分配了
3×8的空间,而给n分配的空间则取决于具体字符串的长度。
此外,系统分配给a的空间是连续的,而给n分配的空间则不一定连续。
⑺ c语言中%c和%4c有什么区别
%c表示按原来的字符长度输出(就是正常输出)
%4c也是字符输入的一种格式,你只要理解这里的4是什么意思就行了。
4的意思是左补空格右对齐(4>0)
如果是-4的话那就表示右补空格左对齐(-4<0)
也就是说,%mc(m是一个常数)中,如果m>0,那就表示向左补(m-1)个空格,然后将字符输出
如果m<0,就是表示向左对齐(这就不多说了,因为%c格式每次只能输出一个字符,所以m<0时,%mc格式与%c格式是等效果的)
⑻ C语言。char a=4与char a='4'的区别。请高手解惑。
char a=4 这样a等于ascii码为4的字符,
而 char a='4'让a等于字符'4'(ascii码不是4)。
⑼ C语言int (*p)[4]和int *p[4]区别
第一个是指针数组,第二个是数组指针。区别是他是一个指针还是多个指针。
数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间。
int (*p)[4]就相当于int p[][4],它就是一个二维数组的指针,可以指向一个第二维度为4的二维数组
⑽ C语言中%-4d与%4d的区别
%4d的4是空4位
举例:
printf("4d%", 2);显示的结果是逗 XXX2地(X代表空格)
printf("4d%", 20);显示的结果是逗 XX20地(X代表空格)
printf("3d%", 2);显示的结果是逗 XX2地(X代表空格)
printf("3d%", 20);显示的结果是逗 X20地(X代表空格)